JavaScript对字符串进行AES,CBC,NoPadding加密

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加密包 [ 点我下载 ]

若无特殊说明,本站点所有内容均为原创,转载请说明出处!

原文链接:https://www.ljwei.com.cn/read/369.html

QQ客服

QQ客服

微信客服

微信客服

微信客服二维码
意见反馈

意见反馈

一键置顶