gpt4 book ai didi

javascript - cryptoJS 解密/解密消息 AES CFB 模式

转载 作者:行者123 更新时间:2023-12-03 03:31:30 27 4
gpt4 key购买 nike

我正在 Ruby 中加密一些字符串,将其发送到客户端并尝试在那里解密该字符串。我没有使用 aes rollup(尽管我尝试过得到相同的结果)。我已将 aes.js、core.js 和 cipher-core.js 包作为 Assets 包含在内。我检查了 cipher-core.js 中是否存在报告为未找到的函数。我收到错误:

Uncaught TypeError: Cannot read property 'createDecryptor' of undefined
at Object.reset (aes.self-9251f7d….js?body=1:28)
at Object.init (aes.self-9251f7d….js?body=1:25)
at Object.c.hasOwnProperty.c.init (aes.self-9251f7d….js?body=1:8)
at Object.c.hasOwnProperty.c.init (aes.self-9251f7d….js?body=1:8)
at Object.c.hasOwnProperty.c.init (aes.self-9251f7d….js?body=1:8)
at Object.create (aes.self-9251f7d….js?body=1:8)
at Object.createDecryptor (aes.self-9251f7d….js?body=1:25)
at Object.decrypt (aes.self-9251f7d….js?body=1:31)
at Object.decrypt (aes.self-9251f7d….js?body=1:32)
at Object.decrypt (aes.self-9251f7d….js?body=1:26)

这是代码:

function decipher(encipheredMessage, password, iv) {
var parts = encipheredMessage.split('--', 2),
enciphered = replaceHex(parts[0])

deciphered = CryptoJS.AES.decrypt(
enciphered,
password,
{ iv: iv,
mode: CryptoJS.mode.CFB,
padding: CryptoJS.pad.NoPadding }
).toString(CryptoJS.enc.Utf8)

return deciphered
}

当我将代码加载到节点并为其提供 Ruby 用于加密字符串的 key/iv 时,解密就起作用了。有谁知道发生了什么事吗?

编辑

我一直在尝试通过多种方式使其发挥作用。我尝试将 key 设置为十六进制编码的字符串和十六进制编码的字符数组,但都没有进行任何更改。我真的很挣扎,因为我不是 JS 程序员,对于 cryptoJS 的其他问题的堆栈交换答案似乎都不适用。

最佳答案

阅读 cryptoJS 源代码后,我发现我需要在 application.js 中包含另外两个模块,完整的必需 js 文件集是:

cryptoJS/components/aes
cryptoJS/components/core
cryptoJS/components/cipher-core
cryptoJS/components/mode-cfb
cryptoJS/components/pad-(whichever padding used)

aes 汇总无法工作,因为它缺少其中一些组件,因此我认为最好单独包含这些组件。

关于javascript - cryptoJS 解密/解密消息 AES CFB 模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46077614/

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