TOP > カテゴリ > PHP >

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