依星源码资源网,依星资源网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

【好消息,好消息,好消息】VIP会员可以发表文章赚积分啦 !
查看: 16|回复: 0

国密算法-JAVA版。包含非对称算法SM2、对称算法SM4、摘要算法SM3

[复制链接] 主动推送

1万

主题

1万

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
17724
发表于 6 小时前 | 显示全部楼层 |阅读模式
国密算法-JAVA版。包含非对称算法SM2、对称算法SM4、摘要算法SM3
还包含传输加解密(SM2+SM3+SM4)、数据库加解密(SM3+SM4)、配置文件加解密(SM3+SM4)的组合使用。
国密算法-Java版介绍
国密算法是我国自主研发的密码算法体系,用于保护我国信息安全。它包括对称密码算法、非对称密码算法和杂凑算法,如SM1、SM2、SM3、SM4、SM7、SM9和祖冲之密码算法等。 本软件主要提供了SM2、SM3、SM4三种算法。
SM2是一种非对称加密算法,基于离散对数实现,常用于数字签名和密钥交换;SM3是一种杂凑算法,用于数据完整性校验和消息认证码,该算法为不可逆的算法;SM4是一种分组密码算法,可用于替代DES/AES等国际密码算法,拥有和AES算法相同的密钥长度和分组长度,均为128比特。
除这三种算法的基本实现外,还提供了针对传输加解密、存储加解密、配置文件加解密三种应用场景的算法实现。
传输加解密:采用SM2+SM3+SM4(CBC)的组合。SM2加密SM4的密钥和向量值;SM4加密要传输的数据;SM3保证数据传输的完整性。整个过程中,SM4的密钥和向量值每次都会发生变化,即实现了“一次一密”。
存储加解密:采用SM3+SM4(CBC)的组合。SM3保证数据的完整性;SM4对数据进行加解密。
配置文件加解密:与存储加解密类似。
使用说明
本软件对应的jar包已经发布到maven中央仓库,只需要在pom.xml中引入即可:
  1. <!--引入国密加解密组件-->
  2. <dependency>
  3.     <groupId>cn.openjava</groupId>
  4.     <artifactId>gmsm</artifactId>
  5.     <version>2.0.5</version>
  6. </dependency>
复制代码
在cn.openjava.gmsm.test中提供了测试方法:Test.java,运行后可看到各种算法运算后的值。
  1. SM3摘要:C4B26BA9FB01E8A03884C6CEB3A6CAAE4B78EF8391BB8977E342662A32B04275
  2. SM4-生成密钥:CA4AE6E12B72947BD53C71DCB9A8AF07
  3. SM4-ECB加密:6C090B06707137C725AB3321A5FE6B22
  4. SM4-ECB解密:你好,世界
  5. SM4-生成iv:AA26EA6E61053EF7D5858D67F62DA66D
  6. SM4-CBC加密:86833295EEC0EA65B451D071D1035AAE
  7. SM4-CBC解密:你好,世界
  8. SM2-公钥:046042E11E5AE6AEB8A02EE23F36023B99F3048176CA97B3E6416DEC543C402D2E2FB739C6BAAE8E8D4EC66496072E092D1A6DC42375C00337AF6AA871BDF72A90
  9. SM2-私钥:C42B72B3054D98387D2C1360924C54178C2F379971633F5942746AA7F9EFADB8
  10. SM2-密文:049F955BD2CC44C1450D845DD5720A8096B42D61AA20E378FF41739C4A226E7E81CACE7FD443C5C3F2AD7C18DA9BA3A65DA8BAA8D5F30E19FB92422939EACDA23ED9F3B643E2225BBAA008B93D14C43B82BDF1314B28EB56B1C08B5FB67A1F0DC6469C0304B6857B93C4C7D766372C38
  11. SM2-明文:你好,世界
  12. 传输加密:D8E2853ABE1338E10AF080CEA93631A1603BAFFA87C7AE9F7F615F67EB8619B2E82182B388C0827BC8DAFE684FFC03F8C191D549F5565D83B4A661080FA87EC7D0A489DE2F06B6620E786D97389A3339B2A4CFACBDD4F77976BCD46783841D9D83706E1D0B1EAC48B936658D2BC2CA79G04C6A40D212E467CA0831111E7754BA1C5E2CC16C31DED0BBB4969E96B7A203D34EF10327BA981B5F6FBA295DC1A5C65E8FF785D8DBF121248A34071E25F881939C9AD64BECA8EDDD2AD38FC62189D07148BFD5F4B6D07596C7D0887750D819844A0B5FBDC0AD6728210DA6CB550C777ABE8E41CF19A0781EB2454442C94B64B5A
  13. 传输解密:你好,世界
  14. 传输解密-对象:你好,世界
  15. 配置文件加密:09CE1E6685A00B3556A4A49862F9EA9BA98EBBF58EAB0A8364351EACC59751AE5FB877105807AF6C38B7574A02B2341AA775B65781B04671393E495043E925C6A7D29F4BE5E64B48AFBBBBAF0023576EF5809444749A92E8BB4F8A95CB288F4B
  16. 配置文件解密:你好,世界
  17. 数据库加密:931A4033B0ABB103C741D397D02B5367551C2A444E630FDFF63FD0E8C37A388E53EDC25FACFDC272D8A3642A1B6C57A9886DA072D70D87E4072FC00606B73DA41F969DBF7437A2FFB2ED87CAD4D306685F36EC5D554A15E2A90F61E34F41B836
  18. 数据库解密:2
复制代码
1.SM3
SM3.getDigest(data)
2.SM4生成密钥和向量值
String key = SM4.generateKey();
3.SM4(ECB算法)加密:
SM4.encrypt(data, key);
4.SM4(CBC算法)加密:
SM4.encrypt(data, key, iv);
5.SM4(ECB算法)解密:
SM4.decrypt(data, key);
6.SM4(CBC算法)接i密:
SM4.decrypt(data, key, iv);
7.SM2生成公钥和私钥:
  1. SM2KeyPair sm2Keys = SM2.generateSm2Keys(false);
  2. String publicKey = sm2Keys.getPublicKey();
  3. System.out.println("SM2-公钥:" + publicKey);
  4. String privateKey = sm2Keys.getPrivateKey();
  5. System.out.println("SM2-私钥:" + privateKey);
复制代码
8.SM2加密和解密:
  1. String encrypt = SM2.encrypt(data, publicKey);
  2. System.out.println("SM2-密文:" + encrypt);
  3. String data2 = SM2.decrypt(encrypt, privateKey);
  4. System.out.println("SM2-明文:" + data2);
复制代码
9.传输加密和解密:
  1. String encrypt1 = GmTransmissionUtil.encrypt(data, sm2PubKey);
  2. System.out.println("传输加密:" + encrypt1);
  3. CipherObj decrypt1 = GmTransmissionUtil.decrypt(encrypt1, sm2PriKey);
  4. System.out.println("传输解密:" + decrypt1.getCipherText());
  5. System.out.println("传输解密-对象:" + GmTransmissionUtil.decrypt(encrypt1, sm2PriKey, String.class));
复制代码
注意:不要用此软件默认的sm2的公钥和私钥,不安全!!! 请自行生成公钥和私钥。
10.数据库加解密:

  1. String encrypt3 = GmDBUtil.encrypt(2, sm4Key, ivKey);
  2. System.out.println("数据库加密:" + encrypt3);
  3. Integer decrypt2 = GmDBUtil.decrypt(encrypt3, sm4Key, ivKey, Integer.class);
  4. System.out.println("数据库解密:" + decrypt2);
复制代码
注意:不要用此软件默认的sm4的密钥和向量值,不安全!!! 请自行生成密钥和向量值。
11.配置文件加解密:
  1. String encrypt2 = GmConfigurationUtil.encrypt(data, sm4Key, ivKey);
  2. System.out.println("配置文件加密:" + encrypt2);
  3. System.out.println("配置文件解密:" + GmConfigurationUtil.decrypt(encrypt2, sm4Key, ivKey));
复制代码
注意:不要用此软件默认的sm4的密钥和向量值,不安全!!! 请自行生成密钥和向量值。




国密算法-js 版。包含非对称算法 SM2、对称算法 SM4、摘要算法 SM3。_依星源码资源网,依星资源网 -


链接: https://pan.baidu.com/s/1G_FgEAQ7sVH66seAkBXg6w
提取码下载:
文件名称:提取码下载.txt 
下载次数:0  文件大小:16 Bytes  售价:10金钱 [记录]
下载权限: 不限 [购买VIP]   [充值]   [在线充值]   【VIP会员6折;永久VIP4折】
安全检测,请放心下载




相关帖子

扫码关注微信公众号,及时获取最新资源信息!下载附件优惠VIP会员6折;永久VIP4折
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

免责声明:
1、本站提供的所有资源仅供参考学习使用,版权归原著所有,禁止下载本站资源参与商业和非法行为,请在24小时之内自行删除!
2、本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,请勿任何商业目的与商业用途。
3、若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
4、论坛的所有内容都不保证其准确性,完整性,有效性,由于源码具有复制性,一经售出,概不退换。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
5、用户使用本网站必须遵守适用的法律法规,对于用户违法使用本站非法运营而引起的一切责任,由用户自行承担
6、本站所有资源来自互联网转载,版权归原著所有,用户访问和使用本站的条件是必须接受本站“免责声明”,如果不遵守,请勿访问或使用本网站
7、本站使用者因为违反本声明的规定而触犯中华人民共和国法律的,一切后果自己负责,本站不承担任何责任。
8、凡以任何方式登陆本网站或直接、间接使用本网站资料者,视为自愿接受本网站声明的约束。
9、本站以《2013 中华人民共和国计算机软件保护条例》第二章 “软件著作权” 第十七条为原则:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。若有学员需要商用本站资源,请务必联系版权方购买正版授权!
10、本网站如无意中侵犯了某个企业或个人的知识产权,请来信【站长信箱312337667@qq.com】告之,本站将立即删除。
郑重声明:
本站所有资源仅供用户本地电脑学习源代码的内含设计思想和原理,禁止任何其他用途!
本站所有资源、教程来自互联网转载,仅供学习交流,不得商业运营资源,不确保资源完整性,图片和资源仅供参考,不提供任何技术服务。
本站资源仅供本地编辑研究学习参考,禁止未经资源商正版授权参与任何商业行为,违法行为!如需商业请购买各资源商正版授权
本站仅收集资源,提供用户自学研究使用,本站不存在私自接受协助用户架设游戏或资源,非法运营资源行为。
 
在线客服
点击这里给我发消息 点击这里给我发消息 点击这里给我发消息
售前咨询热线
312337667

微信扫一扫,私享最新原创实用干货

QQ|免责声明|小黑屋|依星资源网 ( 鲁ICP备2021043233号-3 )|网站地图

GMT+8, 2025-6-18 17:25

Powered by Net188.com X3.4

邮箱:312337667@qq.com 客服QQ:312337667(工作时间:9:00~21:00)

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