SM4Utils国密 SM4 加解密

联合创作 · 2023-09-30 07:43

SM4Utils 是一个封装了国密SM4算法的对称的加密和解密工具,支持 JavaScript 和 Java ,这是Java版本。

使用方法

  • 引入
<!-- https://mvnrepository.com/artifact/icu.xuyijie/SM4Utils -->
<dependency>
    <groupId>icu.xuyijie</groupId>
    <artifactId>SM4Utils</artifactId>
    <version>1.4.1</version>
</dependency>
  • 使用
/**
 * ECB 加密模式
 */
//不使用自定义 secretKey,一般用于后端自行加解密
// 如果是前端加密后端解密,则需要自定义secretKey,secretKey一致才能正确解密
System.out.println("经过ECB加密的密文为:" + SM4Utils.encryptData_ECB("123456"));
System.out.println("经过ECB解密的密文为:" + SM4Utils.decryptData_ECB("UQZqWWcVSu7MIrMzWRD/wA=="));
//使用自定义 secretKey,传入的 secretKey 必须为16位,可包含字母、数字、标点
System.out.println("经过ECB加密的密文为:" + SM4Utils.encryptData_ECB("123456"));
System.out.println("经过ECB解密的密文为:" + SM4Utils.decryptData_ECB("UQZqWWcVSu7MIrMzWRD/wA=="));
/**
 * CBC 加密模式(更加安全)
 * 需要两个密钥 secretKey 和 iv
 */
System.out.println("经过CBC加密的密文为:" + SM4Utils.encryptData_CBC("123456"));
System.out.println("经过CBC解密的密文为:" + SM4Utils.decryptData_CBC("hbMK6/IeJ3UTzaTgLb3f3A=="));
//同样可以自定义 secretKey 和 iv,需要两个密钥前后端都一致
System.out.println("经过CBC加密的密文为:" + SM4Utils.encryptData_CBC("123456", "asdfghjklzxcvb!_", "1234567890123456"));
System.out.println("经过CBC解密的密文为:" + SM4Utils.decryptData_CBC("sTyCl3G6TF311kIENzsKNg==", "asdfghjklzxcvb!_", "1234567890123456"));
浏览 4
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报