前端加解密库 CryptoJS 使用(Triple DES 对称加密)

const key  = CryptoJS.enc.Utf8.parse("4c43c365a4ac05b91eb5fa95"); // key
const iv = CryptoJS.enc.Utf8.parse("4c43c365"); // iv
// 直接使用 key 是不对的,需要像上面那样处理
// const key  = "4c43c365a4ac05b91eb5fa95"; // key
// const iv = key.substr(0, 8); // iv
function encrypted(){
  const encrypted = CryptoJS.TripleDES.encrypt(params, key, { 
        iv: iv, 
        mode: CryptoJS.mode.CBC,  
        padding: CryptoJS.pad.Pkcs7  
    });
    return encrypted.toString(); // 返回加密后的字符串
}
function decrypted(params) {
    const decrypted = CryptoJS.TripleDES.decrypt(encrypted, key, { 
        iv: iv,
        mode: CryptoJS.mode.CBC,  
        padding: CryptoJS.pad.Pkcs7 
    }).toString(CryptoJS.enc.Utf8);
    return decrypted // 返回解密后的字符串
}
说明: 
key:4c43c365a4ac05b91eb5fa95
加密算法:3DES(又叫Triple DES)是三重数据加密算法
加密模式:CBC
填充:Pkcs7
偏移量:4c43c365 (默认为key 的前8位)
输出:base64
字符集:utf-8
加密输出:
encrypted("www.mabokai.ltd")  // 加密输出 ==> "zzqblAp0nkJVf2EtA+pm0g=="
解密输出:
dncrypted("zzqblAp0nkJVf2EtA+pm0g==")  解密输出==> "www.mabokai.ltd"
3DES(又叫Triple DES)是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)块密码的通称。它相当于是对每个数据块应用三次DES加密算法。密钥长度是128位,192位(bit),如果密码位数少于等于64位,加密结果与DES相同。原版DES容易被破解,新的3DES出现,增加了加密安全性,避免被暴力破解。它同样是对称性加密,同样涉及到加密编码方式,及填充方式。包括3DES-ECB,3DES-CBC,3DES-CTR,3DES-OFB,3DES-CFB。