js 3des 加解密,附加demo (模式:cbc 或 ecb
2018-06-07 本文已影响0人
李佳明先生
部分js代码
//秘钥key
var key = "12345677654321";
//key不足24位自动以0(最小位数是0)补齐,如果多余24位,则截取前24位,后面多余则舍弃掉
var base64 = CryptoJS.enc.Utf8.parse(key)
//加密使用的是3DES中的ECB,解密对应的使用ECB
function encrypt() {
var text = document.getElementById('content').value+'';
var encrypt = CryptoJS.TripleDES.encrypt(text, base64, {
iv: CryptoJS.enc.Utf8.parse('0123456789'),//iv偏移量
mode: CryptoJS.mode.CBC, //CBC模式
// mode: CryptoJS.mode.ECB, //ECB模式
padding: CryptoJS.pad.Pkcs7//padding处理
}
);
var encryptData = encrypt.toString();//加密完成后,转换成字符串
document.getElementById("encrypt").innerText=encryptData;
}
//解密
function decrypt() {
var text = document.getElementById("encrypt").innerText;
var decrypt = CryptoJS.TripleDES.decrypt(text, base64, {
iv: CryptoJS.enc.Utf8.parse('0123456789'),
mode: CryptoJS.mode.CBC,
// mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
}
);
//解析数据后转为UTF-8
var parseData = decrypt.toString(CryptoJS.enc.Utf8);
document.getElementById("decrypt").innerText=parseData;
}
最后要注意下,只有cbc模式有iv,ecb模式只有待解密字符串和key
github地址