繁体   English   中英

如何在 javascript 中使用 node-js 加密?

[英]How to use node-js crypto in javascript?

我需要以下加密解密,但在客户端的 java 脚本中。 此代码是用 Node-JS 编写的并使用加密库,我找不到用于客户端运行的 java 脚本的相同解决方案。

const crypto = require('crypto');

const decrypt = (textBase64, keyBase64, ivBase64) => {
    const algorithm = 'aes-256-cbc';
    const ivBuffer = Buffer.from(ivBase64, 'base64');
    const keyBuffer = Buffer.from(keyBase64, 'base64');

    const decipher = crypto.createDecipheriv(algorithm, keyBuffer, ivBuffer);
    decipher.setAutoPadding(false);

    let decrypted = decipher.update(textBase64, 'base64', 'utf8');
    decrypted += decipher.final('utf8');
    return decrypted;
}

const encryptedMessage = '';


const key = 'cGFzc3dvcmQxMjM0NTY3ODk=';

const iv = Buffer.from(encryptedMessage, 'base64').slice(0, 16);

// the message comes from the bytes AFTER the IV - this is what you should decrypt
const message = Buffer.from(encryptedMessage, 'base64').slice(16);

const result = decrypt(message, key, iv);
console.log(result);
//console.log(Buffer.from(encryptedMessage, 'base64').slice(0, 16))

首先我会说不建议在客户端解密,因为密钥是可见的。 但你知道你在做什么。

这个库是纯 JS,应该可以在浏览器中正常工作: ricmoo/aes-js

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM