架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2955|回复: 6

[资料] 【实战】国密4(SM4)使用 .NET 和 Java 相互加解密

[复制链接]
发表于 2022-9-12 22:26:24 | 显示全部楼层 |阅读模式
需求:由于朋友项目上需要和第三方对接,数据在传输过程中使用国密4(SM4)算法进行了加密,需要双方对数据进行加密和解密操作,第三方使用的是 Java 开发的项目,朋友使用的是 .NET 开发的项目。

SM4.0(原名SMS4.0)是中华人民共和国政府采用的一种分组密码标准,由国家密码管理局于2012年3月21日发布。相关标准为“GM/T 0002-2012《SM4分组密码算法》(原SMS4分组密码算法)”。

信息安全技术 SM4分组密码算法:https://openstd.samr.gov.cn/bzgk/gb/newGbInfo?hcno=7803DE42D3BC5E80B0C3E5D8E873D56A

Java 项目

新建了一个 maven 项目,引入了 hutool 工具,使用 hutool 中封装好的 SM4 算法,pom 文件引入如下:

文档:https://hutool.cn/docs/#/crypto/%E5%AF%B9%E7%A7%B0%E5%8A%A0%E5%AF%86-SymmetricCrypto

.NET 项目

.NET 项目需要引入我封装好的 Sw.ChinaEncryptSM 包,支持 .NET Framework 和 .NET Core 项目,使用 nuget 命令如下:


地址:https://www.nuget.org/packages/Sw.ChinaEncryptSM/

测试 .NET 和 Java 加密结果

.NET 代码:

Java 代码:

可以看到在 key 和 iv 相同的情况下,加密后的结果是一样的,如下图:

QQ截图20220912221731.jpg

.NET 加解密和 Java 解密

此处略去使用 Java 加密 .NET 加密的代码,大家举一反三即可。

.NET 代码:

Java 代码:

如下图:

加密结果如下:
rG50B+Ah6k0FqvvKItc2TDJnt9HcDIG9OyjBqkiiAlI=
解密结果如下:
Test 小渣渣 itsvse.com

QQ截图20220912222322.jpg

(完)




上一篇:3分钟学会制作发布NuGet包
下一篇:【实战】提取解压 .msi 安装包内的文件
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2022-9-12 23:19:18 | 显示全部楼层
学习学习
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2022-9-19 09:39:02 | 显示全部楼层
学习国密互通JAVA.NET
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2022-9-24 09:29:33 | 显示全部楼层

学习国密互通JAVA.NET
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2022-10-18 19:31:37 | 显示全部楼层
正好需要,看看
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2023-1-4 17:37:20 | 显示全部楼层

正好需要,看看!~~~~~
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2023-6-9 20:09:39 | 显示全部楼层
SM4算法随机生成 SM4 key和IV目前只支持128位(即密钥16字节)。


c# 代码如下:

QQ截图20230609200926.jpg

码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-4-20 04:46

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表