Nekoya Press

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 publishhexkey.pl %}

こんな具合にして変換したkeyをPythonのコードに埋め込みます。

{% gist 5088592 decrypt.py %}

あとはpaddingをそれっぽく調整して、こんなもんでいけたっぽいです。

nekoya.github.io