ASP.NET Core パスワードのハッシュ化

プログラミング
公開: 2022年12月08日

概要

ASP.NET Core でパスワードをハッシュする KeyDerivation.Pbkdf2 API は低レベルの暗号化プリミティブであり、アプリを既存のプロトコルまたは暗号化システムに統合するために使います。 パスワード ベースのログインをサポートし、ハッシュされたパスワードをデータストアに格納する必要がある新しいアプリでは、KeyDerivation.Pbkdf2 を使わないでください。 新しいアプリでは、PasswordHasher を使う必要があります。 PasswordHasher について詳しくは、「ASP.NET Core の Identity PasswordHasher の概要」をご覧ください。

というわけで PasswordHasher を使ったコード。

public static class StringExtensions
{
    public static string HashPassword(this string password)
    {
        return new PasswordHasher<string>().HashPassword("", password);
    }

    public static bool VerifyHashedPassword(this string password, string hashedPassword)
    {
        var result = new PasswordHasher<string>().VerifyHashedPassword("", hashedPassword, password);
        return
            result == PasswordVerificationResult.Success ||
            result == PasswordVerificationResult.SuccessRehashNeeded;
    }
}

参考

ASP.NET でのパスワード格納 ASP.NET Core でパスワードをハッシュする ASP.NET Core の Identity PasswordHasher の概要(英語)