SM4国密加解密
需求:使用国密SM4进行前端加密,后台解密。
·
需求:使用国密SM4进行前端加密,后台解密
java解密代码
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.6.6</version>
</dependency>
import cn.hutool.crypto.Mode;
import cn.hutool.crypto.Padding;
import cn.hutool.crypto.symmetric.SM4;
import cn.hutool.crypto.symmetric.SymmetricCrypto;
String decryptStr(String str) {
if (StringTool.empty(str)) {
return "密码为空";
}
//国密SM4解密
String pwd = str.trim();
SymmetricCrypto sm4 = new SM4(Mode.CBC, Padding.PKCS5Padding, "HTHTqQq314159@26".getBytes(), "HTHTqQq314159@26".getBytes());
byte[] cipherHex = Base64.decode(pwd);
pwd = sm4.decryptStr(cipherHex);
return pwd;
}
js加密代码
//sm4加密 "gm-crypt": "^0.0.2",安装依赖npm install gm-crypt
encryption (passWord) {
const SM4 = require('gm-crypt').sm4;
let sm4Config = {
//配置sm4参数
key: 'HTHTqQq314159@26', //这里这个key值是跟后端要的
mode: 'cbc', // 加密的方式有两种,ecb和cbc两种,也是看后端如何定义的,不过要是cbc的话下面还要加一个iv的参数,ecb不用
iv: 'HTHTqQq314159@26',
cipherType: 'base64',
};
let sm4 = new SM4(sm4Config);
let Pwd = sm4.encrypt(passWord);
return Pwd;
},
更多推荐
已为社区贡献4条内容
所有评论(0)