7

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

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

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

更新:

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

4

1 回答 1

6

默认不应该是 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;

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

如果您看到 0x00,则说明它是在您的代码中的其他位置配置的,或者存在错误,在这种情况下,请将其记录在 GitHub 上。

于 2016-04-04T12:49:02.890 回答