September 21, 2007
そろそろ中間発表の準備で参ってきたので,現実逃避気味に日記でも書こうかと思いたちました。
こないだ研究室の開発合宿なるものに行ってきたのですが,そこで先輩に教えてもらったPerlのコード
''=~('"`_[[).[|`%,,/`[/[@$~)^##'^'
_$+)@@/^(@@@@@,@),@_#|^
')
これでHello Worldが出ます。これの仕組みは以下のような感じのようです。
eval('[[).[|`%,,/`[/[@$~)^'^'+)@@/^(@@@@@,@),@_#|');
例えばCで
main()
{
int i;
char *a = "\"`_[[).[|`%,,/`[/[@$~)^##";
char *b = "\n_$+)@@/^(@@@@@,@),@_#|^\n";
for (i=0;i<25;++i)
putchar(a[i] ^ b[i]);
}
とかやってみると驚きの結果が。
べつにXORでなくてもいいので|や&で同じような
暗号がたくさんつくれるー,と思ったけど実装したら
後悔しそうなのでやめました。
