パスワードの保存にsalt
を使用すると何が良いですか?
MD5:
$hash = md5($password . $salt);
Password_hash:
$hash = password_hash($password, PASSWORD_DEFAULT, $salt);
SHA1:
$result = sha1($salt.$string);
独自のソルトを提供せずに、password_hash()関数を絶対に使用する必要があります。
$hash = password_hash($password, PASSWORD_DEFAULT);
この関数は、それ自体で安全なソルトを生成します。他のアルゴリズムは、パスワードをハッシュするには速すぎるため、ブルートフォース攻撃が簡単になりすぎる可能性があります(約 8ギガMD5 /秒)。
ソルトは、大量のパスワードを保存する場合に最適です。それ以外の場合、ソルトはプレーンテキストで保存されるため、かなり役に立ちません。攻撃者がハッシュ化されたパスワードを取得できた場合は、攻撃者があなたのソルトを手に入れることができると想定してください。 SHA-256は暗号的に強力なハッシュ関数であるため使用し、ソルトを使用します。しかし、最も重要なことは、強力なハッシュアルゴリズムと組み合わせた強力なパスワードを使用することです。