2018年1月8日月曜日

キーボード入力した文字列をハッシュして数列を取り出す

ことの発端は会社の後輩から飲み会の支払いをLINE Payで頼まれたこと。
最近流行りのモバイル決済に興味があったので、早速登録!
しようとしたが、6桁の数字という新しいパスワード形式に固まる。

色々考えたが、すでにあるパスワードをハッシュしてそこから数字6桁取り出せないかなと思い、試行錯誤。
md5sumを調べたところ、文字列はキーボード入力で引き渡してハッシュ化出来た。おあつらえ向きにhistoryに残さずハッシュ処理が可能。
後はreadコマンドでキーボード入力を代行させてやって下記のコマンドになった。

$ read Password ; echo $Password | md5sum | tr -cd '0123456789' | cut -c 1-6

あとで考えると、理論的には6つも数字がないハッシュ結果のパターンもありそうだけど、一旦これで大丈夫そう。