使用CryptoJS中的md5和aes加密
阿新 • • 發佈:2018-12-09
使用CryptoJS中的md5和aes加密
參考資料:
// md5
function md5encode(word) {
return CryptoJS.MD5(word).toString();
}
//aes加密 function encrypt(word) { var key = CryptoJS.enc.Utf8.parse(CryptoJS.MD5(ym.hezubao).toString()); //16位 var iv = CryptoJS.enc.Utf8.parse(CryptoJS.MD5(key).toString().substr(0,16)); var encrypted = ''; if (typeof(word) == 'string') { var srcs = CryptoJS.enc.Utf8.parse(word); encrypted = CryptoJS.AES.encrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 }); } else if (typeof(word) == 'object') {//物件格式的轉成json字串 data = JSON.stringify(word); var srcs = CryptoJS.enc.Utf8.parse(data); encrypted = CryptoJS.AES.encrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 }) } return encrypted.ciphertext.toString(); } // aes解密 function decrypt(word) { var key = CryptoJS.enc.Utf8.parse(CryptoJS.MD5(ym.hezubao).toString()); var iv = CryptoJS.enc.Utf8.parse(CryptoJS.MD5(key).toString().substr(0,16)); var encryptedHexStr = CryptoJS.enc.Hex.parse(word); var srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr); var decrypt = CryptoJS.AES.decrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 }); var decryptedStr = decrypt.toString(CryptoJS.enc.Utf8); return decryptedStr.toString(); }