http://www.hatena.ne.jp/1098792890#
AES(Rijndael)の暗号化をPERLのOne-Linerで書いたという記事/ページ(具体的なコードがあると直よいです)を探しております。英語でも構いません。宜しくお願いします。.. - 人力検索はてな
Rijndaelのアルゴリズムまで1行ではムリなので。-Mでモジュール使ってます。
というか1行と呼ぶにはちと厳しい気も・・・
perl -MCrypt::Rijndael -e ”$cipher = new Crypt::Rijndael ’a’ x 32, Crypt::Rijndael::MODE_ECB; print unpack(’H*’,$cipher->encrypt(’hogehogehogehoge’));”
perl -MCrypt::Rijndael -e ”$cipher = new Crypt::Rijndael ’a’ x 32, Crypt::Rijndael::MODE_ECB; print $cipher->decrypt(pack(’H*’,’8e38f1a91764aeb48841737499c299a6’));”
上がECBモード、keyがaを32個でhogeを4つ繋げたものを暗号化
下はその逆(復号化)です。
http://perldoc.jp/docs/modules/Crypt-Rijndael_PP-0.04/Rijndael_P...
Crypt::Rijndael_PP - RijndaelのPerl実装
それらしい記事を見つけられませんでしたし、Rijndaelを実装しているPure Perlのモジュールのソースを見てもOne-Linerだけでできるようには思えませんでした。
モジュールを使うのは可なのでしょうか?
モジュールを使ってよければ、リンク先のものを使って次のようなOne-Linerで良いと思います。
perl -MCrypt::Rijndael_PP -e ”print Crypt::Rijndael_PP->new(pack(’H*’,’1234567890ABCDEF’x4),MODE_CBC)->encrypt(’暗号化対象データ’)”
「’1234567890ABCDEF’x4」は256bitのキーとして用意した文字列です。
http://search.cpan.org/~delta/Crypt-Rijndael_PP-0.04/Rijndael_PP...
Crypt::Rijndael_PP - Perl implementation of Rijndael - search.cpan.org
本家CPAN上の同モジュールのページです。
sourceを見ていただくと、モジュール抜きでこれだけの作業をするOne-Linerが難しそうだと判断したのがお分かりいただけるかと思います。
ありがとうございます。
授業で実装に関するディテールを勉強したので「無理でしょう」と思ったのですが、上のも書きましたとおり、教授の一言で気になって、お尋ねした次第です。うーん。どうなんだろう。。。
回答ありがとうございます。大変申し訳ございませんが、この方法は自分も考えておりました。
AES暗号化に関する授業中に教授がボソリと「最近海外のニュースサイトで1行で暗号化したのを観たんだ」と言っていたのが気になったので。うーん。もしかしたら眉唾かもしれません。。。