Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

Array#packが良い感じにコワイ

packは配列の中身を一定のルールで成型した文字列で返すメソッドです。

変換記号は色々と暗号めいていますが...
慣れると、色々なデータ型をスイスイ精製できます。
Rubyの特性上、配列はカッコで括るだけですから楽チンですし
狙える局面では積極的にやって行きたい所。

使い道

cryptなパスワードを生成

cryptのsaltは4046(0x1000)通りの乱数を用いて元の文字列をかき回します。
暗号化には頭の8文字しかつかわないので、それ以上の文字数にしても意味が無いです

"password".crypt([[rand(0x1000)].pack("v")].pack("m").tr("+","."))
#=> "ew4pdU/Pb6JkI"

#=> "lgAHTz.zbs4QY"

[ruby-list:29297] salt generation
http://docs.ruby-lang.org/ja/2.1.0/method/Array/i/pack.html