【发布时间】:2016-03-25 02:55:13
【问题描述】:
所以我有一段代码用密码加密一个字符串。它使用 CryptoJS AES 加密函数 (CryptoJS.AES.encrypt),看起来像这样...
CryptoJS.AES.encrypt(data, password).toString();
展望未来,我不想使用 CryptoJS,因为它已正式弃用/未维护,而我想使用 Forge.js。我试图通读 GitHub 上的 Forge.js 文档以找到解决方案,但找不到任何使用密码短语而不是手动创建密钥和 IV 的内容。
我查看了https://code.google.com/archive/p/crypto-js/ 的 CryptoJS 存档,似乎如果 encrypt 函数传递了一个字符串作为第二个参数(密钥),则它被用作派生密钥和 IV 的密码。但它没有详细说明它是如何做到这一点的。
似乎base64解码结果给出了一个以Salted__开头的字符串,然后是一个逗号,然后是二进制文本的加密blob,我什至不确定如何将“盐”传递给Forge。
我将如何仅使用 Forge.js 解密这些数据?
【问题讨论】:
标签: javascript encryption cryptography cryptojs