如何使用Ruby / OpenSL解密 /加密设置填充模式



我从以下C#加密代码开始,并希望用Ruby解密。我的问题是我不知道如何在Ruby/OpenSSL中设置填充模式。我特别需要使用PKCS7

C#加密

System.Security.Cryptography.Aes c = new System.Security.Cryptography.AesManaged();
c.Mode = CipherMode.CBC;
c.Padding = PaddingMode.PKCS7;   # <-- how to set this in Ruby world?
c.KeySize = 256;
c.BlockSize = 128;
c.Key = key;
c.IV = iv;
...

红宝石解密

d = OpenSSL::Cipher.new('AES-128-CBC') # oops, this should have been AES-256-CBC
d.decrypt
d.key = key
d.iv  = iv
...

我目前正在使用Ruby 1.9.2,但可以使用任何必要的版本。

构造函数参数实际读取<name>-<key length>-<mode>,因此首先,您可能要使用AES-256-CBC来使用256位键。[来源]

AES块大小无论如何都固定为128位,因此您无需调整此参数。[来源]

另外,Ruby默认情况下使用PKCS7填充,因此也无需调整此填充。[来源]

因此,您应该只使用

就应该很好
c = OpenSSL::Cipher.new('AES-256-CBC')
c.decrypt
c.key = key
c.iv = iv

相关内容

  • 没有找到相关文章

最新更新