1
MVC 3 Crypto Helper - これにより、パスワードをより安全にするために余分なシールドが追加されますか?
string salt = Crypto.GenerateSalt();
string saltAndPwd = String.Concat(originalPassword, salt);
string hashedPwd = Crypto.HashPassword(saltAndPwd);
B
string hashedPwd = Crypto.HashPassword(originalPassword);
私はより安全である、方法AおよびB法を知ってもいいですか?それとも正しいアプローチですか?塩を使用しての主な目的は虹のテーブルを倒しているとして、
public static string HashPassword(string password)
{
if (password == null)
{
throw new ArgumentNullException("password");
}
return HashWithSalt(password, GenerateSaltInternal(0x10));
}
ハッシュパスワードメソッドを使用している場合は、saltを保存する必要はなく、crypto.hashpasswordの行をコールバックするときに同じ値が生成されますか? (私が意味するのは、ユーザーログイン時に同じ値の比較を取得することです... – 1myb
投稿したMSDNのセクションを見ると、返された値に塩が格納されます。したがって、保存する必要があるのは、あなたが 'Crypto.VerifyHashedPassword'を呼び出すと残りの部分が実行されます。 –
最後に、自己実装の後、私は理解しています... verifyhashedpasswordは元のパスワードかどうかを検出するために使用されます。 = Dちょうどハッシュされたパスワードを保持する。ログインフォームで、verifyhashedpassword(データベースのハッシュパスワード、ユーザログイン入力)を使用する。もし真なら...パスワード= D – 1myb