MD5の安全性を少しだけ高めるソルト(SALT)
データベースにパスワードなどをプレーンテキストで保存すると漏洩した時などに危険です。そのような時にはMD5などのパスワードハッシュを使用します。ですが、そのまま使用すると現在のPCでは10分もあれば解析されてしまいます。そこでソルトの出番です。
ソルト(Salt)とは?
ソルトとは「塩」の事です。料理をする時に塩を使用する光景を浮かべてみて下さい。食材の上に塩を振り掛けていますね。
ハッシュ関数のソルトも同様でプレーンテキストにソルト(ランダムな文字)を追加する仕組みです。
サンプル
MD5_SALTにはランダムな長い文字を入れます。
define("MD5_SALT" , "1234567890abcdefghij"); $hash = md5($password . MD5_SALT);
上記で多少の安全性はあがりましたが、更に下記のようにすると良いかもしれません。もちろん、あれこれと追加すると安全性はどんどん高まると思います。
define("MD5_SALT" , "1234567890abcdefghij"); $hash = md5(md5($password) . md5(MD5_SALT));
まとめ
MD5に限らず、ハッシュ関数にはソルトを追加すると安全性が高まる。
もっと安全な情報が欲しい
という方にはPHPの公式サイトをご覧下さい。
ソルトに関しては
ソルトとはちょっとした追加データです。 これをつけるだけで、ハッシュをクラックするのが劇的に難しくなります。
と書かれています。もちろん、md5()よりpassword_hash()の方がいいと思います :-)
スポンサーリンク
関連記事
公開日:2015年01月21日
記事NO:00143