PythonクライアントとRubyサーバーがデータの暗号化方法について意見の相違を持っている理由を理解しようとしています。Rubyコードと私のコードで見られる唯一の違いは、初期化ベクトルを指定していないため、すべての\x0のデフォルトにフォールバックすることです。
ivなしでPyCryptoをインスタンス化しようとすると、エラーが発生します。次に例を示します。
from Crypto.Cipher import AES
test = "Very, very confidential data"
key = b'Thirty Two Byte key, made Beef y'
gryp = AES.new(key, AES.MODE_CBC)
(この例は、基本的にIVを指定しないPyCryptoドキュメントのサンプルコードです)ドキュメントには、IVがw / r / tと記載されています。「オプションであり、存在しない場合は、すべてゼロのデフォルト値が与えられます。」ただし、「ValueError:IVは16バイト長である必要があります」というエラーが表示されます。
したがって、IVを指定することはできますが、それ自体は問題ではありませんが、デフォルトを使用できないと思われる場合、ライブラリの使用方法に何か問題がある場合は、それを理解しようとしています。