1

我对加密完全陌生,所以这个问题可能是微不足道的 - 但是,我不得不用谷歌搜索 2 小时才能理解基本术语,所以请耐心等待。

我需要发送的字符串是加密 JSON 对象的 Base64 编码字符串。这是他们发给我的规格:

  • 加密方式:Rijndael
  • 密码模式:CBC
  • 填充模式:PKCS7
  • 我们将为您提供自定义 Base64Encoded Key 和 IV。

我检查了 crypt 的 Rijndael 算法,但我没有看到将 IV 插入的位置......不确定 CBC 和 PKCS7 是否是默认的 - 如果不是,我也不知道如何更改这些......

所以:

  • 可以轻松修改地穴以支持这些东西吗?
  • 也许它已经按原样支持它,只是我完全缺乏密码知识不允许正确使用?
  • 如果以上都不是,是否可以在 Ruby 中执行此操作?
4

2 回答 2

3

我非常怀疑他们是否真的使用 Rijndael。他们可能使用 AES(它是 Rijndael 的子集,具有固定的 128 位块大小和只有三个标准化密钥大小(128,192 和 256 位))。如果没有他们提供块大小和密钥大小,您无论如何都无法确定,您可能会假设 AES-128,但他们的规范充其量是不完整的。

IV 与密码算法无关,但与链接模式有关,在您的情况下为 CBC。

AES、CBC、PKCS7 可以通过 OpenSSL 在 Ruby 中使用,应该不会太麻烦。

编辑:认为他们使用 Rijndael 的人让我认为他们使用 .NET,在这种情况下,这个问题应该可以解决您的问题:How to decode Rijndael in ruby​​ (encoded in VB.net)

于 2011-03-14T12:02:37.407 回答
0

地穴::Rijndael

这现在包含在 ruby​​ 中,可以轻松地对 Rijndael 进行解密。

于 2014-08-07T18:01:15.930 回答