如何在ASP.NET 5 Identity中设置PasswordHasherCompatibilityMode.IdentityV3?

Sam*_*Son 4 c# asp.net-identity-3 asp.net-core

目前看来默认设置为PasswordHasherCompatibilityMode.IdentityV2ASP.NET 5中的HMAC-SHA1.我试图创建一个PasswordHasherOptions添加到服务(DI)的实例,但无法使其工作.

V3使用PBKDF2和HMAC-SHA256,128位盐,256位子密钥,10000次迭代.

我希望这将像将来的一些配置设置一样简单,而不是必须实现自定义实现,因为所有代码已经存在.

更新:

services.Configure<PasswordHasherOptions>(options => options.CompatibilityMode = PasswordHasherCompatibilityMode.IdentityV3);

blo*_*art 5

默认值不应该是V2,默认值是较新的格式,如https://github.com/aspnet/Identity/blob/dev/src/Microsoft.AspNetCore.Identity/PasswordHasherOptions.cs中所示.

    /// <remarks>
    /// The default compatibility mode is 'ASP.NET Identity version 3'.
    /// </remarks>
    public PasswordHasherCompatibilityMode CompatibilityMode { get; set; } = 
           PasswordHasherCompatibilityMode.IdentityV3;
Run Code Online (Sandbox Code Playgroud)

如果散列密码的第一个字节是0x01,则它是版本3散列.

如果你看到0x00然后它在你的代码中的其他位置配置,或者有一个错误,在这种情况下,请将其登录到GitHub.