javascript - AES 加密/解密对于相同的输入、相同的 iv、pad 和模式给出不同的结果

标签 javascript aes cryptojs

我正在尝试制作两个应用程序,第一个应用程序加密数据并将其保存到文件中,然后第二个应用程序将尝试读取该文件并解密其内容

我正在使用 crypto-js 库和 ionic/angular

在我写的第一个程序(加密器)中:

encryptTest(input: string) {
    let key = "secret";
    return crypto.AES.encrypt(input, key, {
      iv: 'aTestIvValueKey',
      mode: crypto.mode.CBC,
      padding: crypto.pad.Pkcs7
    }).toString();
  }

然后我用以下方式调用它:

this.encryptTest('hello world !')

它给了我输出:

U2FsdGVkX186H1iRZM4Il+10/TS6gM7DoUaghwAZX3A=

当我尝试在第二个程序中解密此输出时,它没有给我之前的输入:hello world!,而是一个错误的测试:

68656c6c6f20776f726c642021

第二个程序(解密器):有:

decryptTest(input: string) {
    let key = "secret";
    return crypto.AES.decrypt(input, key, {
      iv: 'aTestIvValueKey',
      mode: crypto.mode.CBC,
      padding: crypto.pad.Pkcs7
    }).toString();
  }

PS:我使用相同的 iv、pad 和模式

最佳答案

当您解密获得字节时,您需要通过正确的编码传递这些字节以获取字符中的单词。

关于javascript - AES 加密/解密对于相同的输入、相同的 iv、pad 和模式给出不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55798824/

相关文章:

amazon-web-services - 相同字符串的不同 MD5 哈希值 (CryptoJS.MD5)

javascript - 为什么我的图像加载在 Firefox 和 Internet Explorer 中没有触发?

javascript - 自定义 url 时重新加载页面

javascript - Bootstrap 3 Modal,里面有文本区域。当点击/聚焦文本区域时,背景会滚动到顶部。仅限 iOS 8

javascript - 如何使用 Closure-Library 进行 AES 编码?

JAVA - AES key 长度不匹配

python - 将语音数据作为字符串记录和写入文件中以进行加密

javascript - 在 Javascript 中实现 Keybase 的 HMAC-SHA256

javascript - HTML 5 Canvas 中的一手拉圆模拟

javascript - SHA256 未定义