gpt4 book ai didi

javascript - 如何使用 JavaScript 在浏览器中加密数据并使用 Node.js 在服务器端解密

转载 作者:行者123 更新时间:2023-11-30 20:41:39 26 4
gpt4 key购买 nike

我尝试在浏览器上使用 AES256 加密消息,将其发送到服务器,然后解密,但服务器端一直出现此错误:

错误:06065064:数字信封例程:EVP_DecryptFinal_ex:解密错误

我尝试了几个小时来寻找解决方案,但我看不出问题出在哪里。我正在使用 crypto-js用于客户端和 Node.js 的标准库 crypto

这是我在客户端使用的代码示例。

import * as CryptoJS from 'crypto-js';

const secret = 'example';
const passphrase = 'secret-passphrase'

const encrypted = CryptoJS.AES.encrypt(secret, passphrase);
const encrypted64 = CryptoJS.enc.Base64.stringify(encrypted.ciphertext);

// make a request to a Node.js API with the password encrypted

这是我在服务器端使用的代码示例。

const crypto = require('crypto');

const secret = req.body.secret;

const passphrase = 'secret-passphrase'
const decipher = crypto.createDecipher('aes256', passphrase);

let decrypted = decipher.update(secret, 'base64', 'utf8');
decrypted += decipher.final('utf8');

有什么想法吗?

谢谢。

最佳答案

使用 HTTPS 将在传输过程中加密负载并在服务器上对其进行解密。 HTTPS 使用 RSA 加密消息加密中使用的 key 。
RSA 使用难以破解的 1024 位 key 值。黑客必须将大量数字分解为原始质数才能获得 key ,这使得它几乎不可能被破解。

通常建议在您的传输中使用 HTTPS。

关于javascript - 如何使用 JavaScript 在浏览器中加密数据并使用 Node.js 在服务器端解密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49194786/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com