私はPHP.netでMD5が役に立たず、crypt + saltを使うことを勧めました。ブルートフォース攻撃に対して、クリプトとソルトはMD5よりどのように安全ですか?
だから、私は、その機能の説明に行き、
<?php
$password = crypt('mypassword'); // let the salt be automatically generated
/* You should pass the entire results of crypt() as the salt for comparing a
password, to avoid problems when different hashing algorithms are used. (As
it says above, standard DES-based password hashing uses a 2-character salt,
but MD5-based hashing uses 12.) */
if (crypt($user_input, $password) == $password) {
echo "Password verified!";
}
?>
または私の場合のようなもの読み:私は塩がハッシュされたパスワードに格納されていることを見たときに、
ので$stored_password=fetch_password($user);
if (crypt($_REQUEST['password'],$stored_password)===$stored_password) {
// ok
}
をし、そのハッシュされたパスワードを塩として使用すると、私はCrypt + Saltが出力(ハッシュパスワードを盗んだハッカー)に対してより安全ではないと思います。それはより安全ですか?
辞書攻撃に対して、私はその能力を理解することができますが、ハッシュされたパスワードに対するブルートフォース攻撃の場合、私にはその利点はありません。
ハッカーが塩に合わせて辞書を構築しなければならないため、塩は伝統的なブルートフォース攻撃に役立ちます。ユーザー固有の塩が使用される場合、各ユーザーは独自の辞書を持たなければなりません。 – Zar
ディクショナリは、従来のブルートフォース攻撃では使用されません。 – MrGlass