gpt4 book ai didi

javascript - 加密 (cryptojs) - 解密 (.NET)

转载 作者:行者123 更新时间:2023-11-29 14:53:11 25 4
gpt4 key购买 nike

密码将在 .NET 中使用 AES 加密并存储在数据库中。在另一个应用程序中,使用 javascript(在 Rhino 引擎之上)和 cryptojs 库,我需要解密密码然后使用它。

解决方案不需要很复杂,我所寻求的只是一个简单的实现,让这两个人一起工作。

遵循本指南:http://www.aspsnippets.com/Articles/AES-Encryption-Decryption-Cryptography-Tutorial-with-example-in-ASPNet-using-C-and-VBNet.aspx

在 .NET 中使用 ("Key") 的 key 成功地加密了一个简单的字符串 ("SFTPPass"),但是一旦我开始使用 javascript 进行解密,我就不知道该怎么做了。

这是我在 javascript 中的内容:

var encryptedPass = 'StrmZO1Vjd8noHYzXs8hiQQBQDJZA5Bpg3t4BcmrViU=';

var iv = CryptoJS.enc.Base64.parse('1Ph1oX+N+q/kzpdyaIKBpA==');
var key = CryptoJS.enc.Base64.parse('k/W+Xeenh3kSLneZ/DYXVpvshGbsFVdyfOFdFTJb1yE=');

var SFTPPass = CryptoJS.AES.decrypt(encryptedPass, 'Key', key, {iv: iv});

但是,当我将输出写入文件时,它是空的。

非常欢迎任何建议或替代解决方案!

编辑:根据 alancnet 的推荐,我现在得到了输出,但字符串与原始字符串“1234”不匹配。因此,我按照上面链接中的指南使用相同的关键短语和输入字符串进行了连线。在 .NET 中使用 BitConverter.toString 捕获 key 和 iv 的十六进制。

key = "752DA9F0D612540EEF1DE07A144781261A3D604DE339174ADAC5D5D6A695ABFF"
iv = "9714413594225F1D14FA02101C0D584D"

我的 javascript 现在的样子:

var encryptedPass = 'Ao5ZnFYo344iWqv/Jr9euw==';

var iv = CryptoJS.enc.Hex.parse('9714413594225F1D14FA02101C0D584D');
var key = CryptoJS.enc.Hex.parse('752DA9F0D612540EEF1DE07A144781261A3D604DE339174ADAC5D5D6A695ABFF');

var decryptedString = CryptoJS.AES.decrypt(encryptedPass, key, {iv: iv});

最佳答案

您的代码:

var SFTPPass = CryptoJS.AES.decrypt(encryptedPass, 'Key', key, {iv: iv});

'Key' 是意外参数,应将其删除。

我将您的代码移植到 Node:

var CryptoJS = new require("cryptojs").Crypto;

var encryptedPass = 'StrmZO1Vjd8noHYzXs8hiQQBQDJZA5Bpg3t4BcmrViU=';

var iv = CryptoJS.util.base64ToBytes('1Ph1oX+N+q/kzpdyaIKBpA==');
var key = CryptoJS.util.base64ToBytes('k/W+Xeenh3kSLneZ/DYXVpvshGbsFVdyfOFdFTJb1yE=');

var SFTPPass = CryptoJS.util.bytesToBase64(
CryptoJS.AES.decrypt(
encryptedPass,
key,
{
iv: iv,
asBytes: true
}
)
);

console.log(SFTPPass);

它输出:UABfRxZLApVrt/t8JtoHMhCxfYUPWDwMLuBmWe50tDw=

祝你好运:)

关于javascript - 加密 (cryptojs) - 解密 (.NET),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22073453/

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