Ruby中的Rijndael加密

时间:2011-03-14 09:00:59

标签: ruby encryption rijndael

我对加密非常陌生,所以这个问题可能很简单 - 但是,我必须谷歌2个小时才能理解基本术语,所以请耐心等待。

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

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

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

所以:

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

2 个答案:

答案 0 :(得分:3)

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

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

通过OpenSSL在Ruby中提供AES,CBC,PKCS7,应该不会太麻烦。

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

答案 1 :(得分:0)

Crypt::Rijndael

现在包含在ruby中,可以轻松解密Rijndael。