1.安装sm-crypto库
可以使用npm来安装:
npm install sm-crypto
2.代码中引入并使用它来实现加密解密的功能。
import * as CryptoSM4 from 'sm-crypto';
3.下面是前端加密代码
function stringToHex(str){
let hex = Array.prototype.map.call(str, (c) => {
return c.charCodeAt(0).toString(16);
}).join("");
return hex;
}
const pwdKey = stringToHex('abcdabcdabcdabcd') //密钥替换为后端密钥
function encryptedSM4(text) {
const gmCryptConfigSet = {
padding: pwdKey,
mode: 'cbc',
iv: pwdKey,
output: 'string'
};
return CryptoSM4.sm4.encrypt(JSON.stringify(text), pwdKey, gmCryptConfigSet)
}
4.下面是前端解密代码
function stringToHex(str){
let hex = Array.prototype.map.call(str, (c) => {
return c.charCodeAt(0).toString(16);
}).join("");
return hex;
}
const pwdKey = stringToHex('abcdabcdabcdabcd') //密钥替换为后端密钥
function decryptedSM4(text) {
const gmCryptConfigGet = {
padding: pwdKey,
mode: 'cbc',
iv: pwdKey,
output: 'string'
};
const originData = CryptoSM4.sm4.decrypt(text, pwdKey, gmCryptConfigGet);
const charCodes = originData.split('').map(char => char.charCodeAt(0));
// 过滤掉字符码等于0的字节
const filteredCharCodes = charCodes.filter(code => code !== 0);
const decryptData = filteredCharCodes.map(code => String.fromCharCode(code)).join('')
// 将过滤后的字符码数组转换回字符串
return JSON.parse(decryptData)
}