2013-03-12 Tue 09:49
PerlのCrypt::CBCとPythonのPyCryptoで暗号文字列をやりとりする
ここ数年はPerlで暗号を扱う時はMcryptを使っていますが、少し前の時代だとCrypt::CBCを使ったりしてました。世間の流れは知らないけど、Mcrypt使っておけば他のシステムとデータをやりとりする時にお互いやりやすいよねという。
Crypt::CBCで作られた暗号文字列をPythonで復号するケースがあったのですが、そのまま素直にやるとうまくいきません。
padding周りかなと思ったけど、どうやらkeyがそのままでは使えないらしい。stackoverflowにズバリそのままUsing PyCrypto to decrypt Perl encrypted passwordがあったのでメモ。
{% gist 5088592 publish_hex_key.pl %}
こんな具合にして変換したkeyをPythonのコードに埋め込みます。
{% gist 5088592 decrypt.py %}
あとはpaddingをそれっぽく調整して、こんなもんでいけたっぽいです。