- Published on
ほとんどのエンジニアには解けるパズル2のヒント
- Authors
- ジャバ・ザ・ハットリ
ほとんどのエンジニアには解けるパズル2のヒントをもう少し出すことにした。
ログ見てるとある箇所で 1/3 以上の方が停滞していて、それは Base64 に関する内容だった。
一応ヒントとして URL を誘導して Base64 のページを見ていただく仕組みにしていた。
これ。
Base64 - Wikipedia, the free encyclopedia
で、ここで分かる人は「あー Base64 使ってんのか」となってパズルを解いていると思う。もしくはズラズラっとならんだ記号の雰囲気だけで Base64 を察して次に行く人とか。
なんか 1/3 も停滞してしまうのを見て、これは詳しい説明が要るのかな、と思ってここにヒントを加えることにしました。あくまでパズルのヒントなので詳しい技術内容とかはググッてください。
【Base64 のヒント】
例えばこんな文字列があるとする。
chance = "Jabba, this is your last chance. Free us or die."
で、これをエンコードするとこうなる。Ruby 使うので irb 立ち上げてやったが、この辺はなんでもいい。なんだったら web 上の変換ツールとかでも十分。
$ irb
irb:> chance = "Jabba, this is your last chance. Free us or die."
=> "Jabba, this is your last chance. Free us or die."
irb:> require 'Base64'
=> true
irb:> Base64.encode64(chance)
=> "SmFiYmEsIHRoaXMgaXMgeW91ciBsYXN0IGNoYW5jZS4gRnJlZSB1cyBvciBk\naWUu\n"
となって、変な文字列が生成される。改行が嫌いな方は struct_encode64 とか使ってください。
これを元の状態に戻すのをデコードと言います。
やり方はこんな感じ
irb:> Base64.decode64("SmFiYmEsIHRoaXMgaXMgeW91ciBsYXN0IGNoYW5jZS4gRnJlZSB1cyBvciBk\naWUu\n")
=> "Jabba, this is your last chance. Free us or die."
ね、元に戻ったでしょう。
分かっている人にとってはなに言ってんだよ、という感じだろう。こういうのをヒント無しに、バン!と解いていただくと気持ちいいのでは、と思ってたのだが。1/3 以上もの挑戦者の方が停滞しているのを見てるとヒントにしてもパズルの出し方にしても、何かが悪かったのだ。でも一体なにをどうすればよかったのか、まだ完全には分かっていない。
もしよければ参考にしていただいて、ぜひともパズル回答者のページにコメントいただければ幸いです。