【问题标题】:Bouncycastle PBEWITHSHA256AND256BITAES-CBC-BC Javascript implementationBouncycastle PBEWITHSHA256AND256BITAES-CBC-BC Javascript 实现
【发布时间】:2011-11-20 06:15:46
【问题描述】:

我已尝试但未能在 Javascript 中对字符串进行编码以在 Java 服务器上进行解码。我们想使用 bouncycastle 算法 PBEWITHSHA256AND256BITAES-CBC-BC 来解码服务器端。

我已经尝试使用crypto.js 使用以下代码进行编码:

  var encrypted = Crypto.AES.encrypt("it was Professor Plum in the library with the candlestick", 
        key, 
        { mode: new Crypto.mode.CBC });

   var encryptedString = Crypto.util.bytesToHex(Crypto.charenc.Binary.stringToBytes(crypted));

但是这在服务器上没有正确解码,我猜它与 SHA256 有关,但我无法弄清楚它会消化什么并且找不到任何文档。有谁知道如何在javascript中执行加密?

【问题讨论】:

标签: java javascript encryption aes bouncycastle


【解决方案1】:

你需要在两端做同样的事情。您需要相同的密钥。您需要相同的模式 (CBC),需要相同的填充(使用 PKCS7)并且需要相同的 IV。

在通过 SHA-256 运行密码后,通过显示十六进制来检查您使用的实际密钥在两端是否相同。还要检查 IV 的十六进制。不要使用任何默认值,而是明确选择要使用的模式和填充。

如果您认为是 PBE/SHA-256 出了问题,那么您可能想看看您的文本密码是如何转换为字节的。同样,在将其传递给 SHA-256 之前检查两边的十六进制。将文本转换为字节是常见的错误来源。您需要非常确定 stringToBytes() 正在做什么,以及您在 Java 端使用的任何内容完全相同相同。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-19
    • 2021-01-01
    • 1970-01-01
    • 2014-04-09
    • 1970-01-01
    • 2015-08-22
    • 2017-08-22
    • 1970-01-01
    相关资源
    最近更新 更多