前端比较简单,只需在使用时引入 npm 包
const SM4 = require("gm-crypt").sm4;
下面是前端加解密操作
sm4Config = key: , mode: , cipherType: , iv: = SM4(sm4Config);
有想要细心研究的同学可以打开我们项目的 node_modules 文件夹,搜索 gm-crypt 就可以找到了,如图所示

如果想要在其他项目使用,就把文件拷出来就行了,这里就不细说了。
后端的稍后补充。
/**
* 和前端key一致 */
private static String secretKey = "XXXXXXXXXXXXXXXX"; /**
* 和前端iv一致 */
private static String iv = "XXXXXXXXXXXXXXXX"; /**
* cbc加密 */
public static String encrypt(String plainTxt) {
String cipherTxt = "";
SymmetricCrypto sm4 = new SM4(
Mode.CBC, Padding.PKCS5Padding, secretKey.getBytes(CharsetUtil.CHARSET_UTF_8),
iv.getBytes(CharsetUtil.CHARSET_UTF_8)); byte[] encrypHex = sm4.encrypt(plainTxt);
cipherTxt = Base64.encode(encrypHex); return cipherTxt;
} /**
* cbc解密 */
public static String decrypt(String cipherTxt) {
String plainTxt = ""; try {
SymmetricCrypto sm4 = new SM4(
Mode.CBC, Padding.PKCS5Padding, secretKey.getBytes(CharsetUtil.CHARSET_UTF_8),
iv.getBytes(CharsetUtil.CHARSET_UTF_8)); byte[] cipherHex = Base64.decode(cipherTxt.trim());
plainTxt = sm4.decryptStr(cipherHex, CharsetUtil.CHARSET_UTF_8);
} catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace();
} return plainTxt;
}
转自:https://www.cnblogs.com/caoxwen/p/16179683.html
