11

Asp.Net Identityフレームワークはパスワードを暗号化するためにどのようなアルゴリズムを使用しますか? Android、iPhone、Web、およびデスクトップが同じデータベースを使用するシナリオがあります。このパスワードは暗号化する必要があるため、ASP.NET MVCID フレームワークを使用してパスワードを暗号化しました。ここで、すべてのプラットフォームで機能するアルゴリズムが必要です。

どんな助けでも大歓迎です。

前もって感謝します。

4

2 に答える 2

20

ASP.NET ID は、によって実装されているように、パスワード ベースのキー派生関数 2 (PBKDF2) を使用しRfc2898DeriveBytesます。ハッシュアルゴリズムです。

暗号化とハッシュは異なることに注意してください。

public static string HashPassword(string password)
{
    byte[] salt;
    byte[] bytes;
    if (password == null)
    {
        throw new ArgumentNullException("password");
    }
    using (Rfc2898DeriveBytes rfc2898DeriveByte = new Rfc2898DeriveBytes(password, 16, 1000))
    {
        salt = rfc2898DeriveByte.Salt;
        bytes = rfc2898DeriveByte.GetBytes(32);
    }
    byte[] numArray = new byte[49];
    Buffer.BlockCopy(salt, 0, numArray, 1, 16);
    Buffer.BlockCopy(bytes, 0, numArray, 17, 32);
    return Convert.ToBase64String(numArray);
}
于 2014-07-15T05:45:41.433 に答える