ベルリンのITスタートアップで働くジャバ・ザ・ハットリの日記

日本→シンガポール→ベルリンへと流れ着いたソフトウェアエンジニアのブログ

ほとんどのエンジニアには解けるパズル2のヒント

ほとんどのエンジニアには解けるパズル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以上もの挑戦者の方が停滞しているのを見てるとヒントにしてもパズルの出し方にしても、何かが悪かったのだ。でも一体なにをどうすればよかったのか、まだ完全には分かっていない。

もしよければ参考にしていただいて、ぜひともパズル回答者のページにコメントいただければ幸いです。
 
 
tango-ruby.hatenablog.com