aes 128 cbc加密
function encrypt(msg, key, iv) {//加密
var key = CryptoJS.enc.Utf8.parse(key);//Base64字符串-->WordPress对象
var iv = CryptoJS.enc.Utf8.parse(iv);
return CryptoJS.AES.encrypt(msg, key, {
iv: iv,
padding: CryptoJS.pad.Pkcs7,
mode: CryptoJS.mode.CBC
});
}
var data = "2018E22030800024";
var key="kunlun8888888888";
var iv = "1234567812345678"
var encrypted = encrypt(data, key, iv);
var cipherText = encrypted.toString();
/**/
console.log("原串:"+data)
console.log("加密:"+cipherText);
- aes 256 cbc加密
var message = "20181100160000018417";//utf8字符串,待加密
var iv = "1234567812345678";
var key = "kunlun8888888888";//秘钥。长度32的16进制字符串。
var cryptkey = CryptoJS.enc.Utf8.parse(key);//将16进制字符串转换为 WordArray对象
//或者
//var key = "qwertyuiopasdfgh";//长度16的utf8字符串
//var cryptkey = CryptoJS.enc.Utf8.parse(key);//将utf8字符串转换为 WordArray对象
//重点是 key要转换为WordArray对象,加密时要用。
//测试
var ciphertext = aesEncrypt(message,cryptkey,iv);//加密
var decryptedMessage = aesDecrypt(ciphertext,cryptkey,iv);//解密
console.log("原串:"+message)
console.log("加密:"+ciphertext)
console.log("解密:"+decryptedMessage);
function aesEncrypt(message,key,iv){
var ciphertext = CryptoJS.AES.encrypt(message, key, {
iv: CryptoJS.enc.Utf8.parse(iv),
mode: CryptoJS.mode.CBC,
padding:CryptoJS.pad.Pkcs7
});
return CryptoJS.enc.Base64.stringify(ciphertext.ciphertext);//密文 转 Base64字符串
}
//解密函数 稍有改动。
function aesDecrypt(crypted,key,iv){
var decrypted = CryptoJS.AES.decrypt({ciphertext: CryptoJS.enc.Base64.parse(crypted)},key,{
iv: CryptoJS.enc.Utf8.parse(iv),
mode: CryptoJS.mode.CBC,
padding:CryptoJS.pad.Pkcs7
});
return decrypted.toString(CryptoJS.enc.Utf8);
}
网友评论