パスワードの作成にMD5やSHA1を使う

OSのログインパスワードで、新しく生成されたパスワードはSHA1などでハッシュ化して保存されますが、このハッシュ化されたデータ自体をログインパスワードとして利用したらより安全だと思います。

MD5では必ず32桁のランダムな文字列が生成され、
SHA1では必ず40桁のランダムな文字列が生成されます。

必ずと言って、なんども入力しなければならない、OSのログインパスワードなどでは、

こんな長いパスワードは覚えられるはずがありません。

しかし、最近のブラウザは一度入力されたユーザー名とパスワードを記憶してくれる機能が付いています。さらに違うPCと同期までしてくれます。 そういった環境では、わざわざ覚えやすいパスワードをブラウザに記憶させておく必要はないはずです。

さらにハッシュ値を吐き出すアルゴリズムは、入力が一文字異なるだけで全く異なる値を出力するので、
入力する文字列を、好きな(短い)単語をほんの少し繋げるだけで、必ず難解なパスワードが生成できます。

つまり、ブラウザから利用するパスワードにはハッシュ化したパスワードがオススメということです。

SHA1とMD5のパスワードを生成する簡単なツールを作ったので置いておきます→pass.exe
使い方
オプション)

pass -m MD5パスワードを出力する
pass -s SHA1パスワードを出力する
pass -cm ※-cは元のパスワードを間違えないようにするだけ
pass -cs

例)
SHA1の新しいパスワードを生成する(pas1と入力)

pass -cs
UNIX password:****
Retype UNIX password:****
generated SHA1pass -> ece9a941ffb615fc7233b2fec9b7255d67affeb2

SHA1のパスワードを出力する(pas2と入力)

pass -s
UNIX password:****
SHA1pass -> 11962e25c8348cfa42c215578a2ade82c90d5e9e

pas1とpas2でこれだけ出力が違うのが面白い!
passwdコマンドに似せてるのは特に意味はないです。

ソースコード→ pass_src.zip

参考サイト
RFC 3174 – US Secure Hash Algorithm 1 (SHA1)
MD5メッセージ要約アルゴリズム(日本語訳)

そういやLinuxなのに UNIX passwordって表示されるのは何でだろ・・・