No more than code.
CryptoJS 加密
crypto-js 是一个纯 javascript 写的加密算法类库 ,可以非常方便地在 javascript 进行 MD5、SHA1、SHA2、SHA3、RIPEMD-160 哈希散列,进行 AES、DES、Rabbit、RC4、Triple DES 加解密。下载安装:
npm install crypto-js --save
AES 加密 [16进制编码]
const CryptoJS = require("crypto-js");
const SecretKey = "12345677";
// AES加密 Hex编码
AESEncrypt(data) {
const result = CryptoJS.AES.encrypt(
data,
CryptoJS.enc.Utf8.parse(SecretKey),
{
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
}
);
return result.ciphertext.toString();
},
// AES解密 Hex编码
AESDecrypt(hexData) {
const encryptedHexStr = CryptoJS.enc.Hex.parse(hexData);
const encryptedBase64Str = CryptoJS.enc.Base64.stringify(encryptedHexStr);
const decryptedData = CryptoJS.AES.decrypt(
encryptedBase64Str,
CryptoJS.enc.Utf8.parse(SecretKey),
{
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
}
);
return decryptedData.toString(CryptoJS.enc.Utf8);
},
TripleDES 加密
// 加密
encryptByDES(message, key) {
const keyHex = CryptoJS.enc.Utf8.parse(key);
const encrypted = CryptoJS.TripleDES.encrypt(message, keyHex, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
return encrypted.toString();
},
// params - 需要加密的参数; key - 秘钥
const src = this.encryptByDES(JSON.stringify(params), key);
const baseSrc = encodeURIComponent(src);
const str = "1.0" + "UTF-8" + baseSrc + key;
var hash = CryptoJS.SHA256(str).toString();
// 接口入参
// data: baseSrc,
// sign: hash