2022-06-06 14:24 JavaScript 66 梁俊威
近期在做项目使用第三方用户登录注册时,遇到了一个需要使用AES加密,MODE为CBC,Padding是NoPadding的加密,加密后需要使用BASE64再次进行加密请求,废话不多说,直接上代码,加密包在文章尾处。
先导入文章末尾的加密包aes.js以及pad-zeropadding.js;
加密示例:
function encrypt(str) { let passKey = "ljwei"; let passIv = "ljwei"; let key = CryptoJS.enc.Utf8.parse(passKey); let iv = CryptoJS.enc.Utf8.parse(passIv); let srcs = CryptoJS.enc.Utf8.parse(str); let encrypted = CryptoJS.AES.encrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.ZeroPadding }); return encrypted.ciphertext.toString(CryptoJS.enc.Base64); } var str = "123456"; var encryptStr = encrypt(str); console.log(encryptStr );
解密示例:
function decrypt (str, key, iv) { key = CryptoJS.enc.Utf8.parse(MD5(key)); let iv = CryptoJS.enc.Utf8.parse(iv) let decrypted = CryptoJS.AES.encrypt(str, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.ZeroPadding }) let decryptedStr = decrypted.toString(CryptoJS.enc.Base64) return decryptedStr.toString() } var encryptStr = ""; var key = "ljwei"; var iv = "iv"; var decryptStr = decrypt(encryptStr, key, iv); console.log(decryptStr);
本站提供的所有资源文件禁止用于一切违法、商业行为,若发生一切后果均由下载人员承担。
本文附件:AES加密包 [ 点我下载 ]
若无特殊说明,本站点所有内容均为原创,转载请说明出处!