パスワードとハッシュと一致確認
小ネタ。
何かログインして使うようなシステムを作るとして、このご時世において 生 のパスワードを保持することはほとんどない。
だいたいのケースでは(復号可能と言う意味での)暗号化ですらなくハッシュで持っていることがほとんどだろう。
暗号化されたパスワードは復号し元のパスワードを手に入れることが出来るが、ハッシュは(一応)それが出来ない。
一応と書いたのはある条件下においては 推測 くらいなら出来ることがあるからだ。
5f4dcc3b5aa765d61d8327deb882cf99
で Google検索すれば大量の記事が出てくる。
これは password
と言う文字列のMD5ハッシュ値だ。
極端な条件設定になるが、
- パスワードは英小文字と数字のみ6文字以上8文字以下
- パスワードはMD5ハッシュ値で保持
であるとする。この場合取りうるパスワードは 2,901,650,853,888 パターンとなる。
あれ、思ったより多いな。
とは言え以下のようなありがちなやつは計算済みのハッシュテーブルが世の中にあるのですぐに元のパスワードが推測可能なのだ。
hash | raw |
---|---|
e19d5cd5af0378da05f63f891c7467af | abcd1234 |
6eea9b7ef19179a06954edd0f6c05ceb | qwertyuiop |
b427ebd39c845eb5417b7f7aaf1f9724 | zxcvbn |