4

次の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;
...

Rubyの復号化

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いますが、必要なバージョンを使用できます。

4

1 に答える 1

3

コンストラクターパラメーターは実際にはを読み取る<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
于 2012-11-06T14:56:18.850 に答える