JavaScript加密库crypto-js及node-forge

2022-11-07307次阅读javascript

JavaScript加密库crypto-jsnode-forge。其中crypto-js的3.1.9-1版对低版本的IE也是兼容的。

引入CDN

<script src="https://cdn.bootcss.com/crypto-js/3.1.9-1/crypto-js.min.js"></script>

加解密JS
 

// 十六位十六进制数作为密钥
const key = CryptoJS.enc.Utf8.parse("1234567890hijklm");
// 十六位十六进制数作为密钥偏移量
const iv = CryptoJS.enc.Utf8.parse('1234567890abcdef');
//解密方法
function myDecrypt(word) {
    let encryptedHexStr = CryptoJS.enc.Base64.parse(word)
    let srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);
    let decrypt = CryptoJS.AES.decrypt(srcs, key, {
        iv,
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7
    });
    let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
    return decryptedStr.toString();
}
//加密方法
function myEncrypt(word) {
    let srcs = CryptoJS.enc.Utf8.parse(word);
    let encrypted = CryptoJS.AES.encrypt(srcs, key, {
        iv,
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7
    });
    //return CryptoJS.enc.Base64.stringify(encrypted.ciphertext);
return encrypted.ciphertext.toString();
}

使用

const pwd = '123456';
const decPwd = myEncrypt(pwd);
console.log('-----原密码-----', pwd);
console.log('-----加密后-----', decPwd);
console.log('-----解密后-----', myDecrypt(decPwd));

 

上一篇: node包管理pnpm和corepack  下一篇: HTML属性capture是否启用用户的前置或后置摄像头和/或麦克风  

JavaScript加密库crypto-js及node-forge相关文章