问题
Currently it seems default is set to PasswordHasherCompatibilityMode.IdentityV2
which is HMAC-SHA1 in ASP.NET 5. I tried to create a instance of PasswordHasherOptions
to add to services (DI) but could not get it to work.
V3 uses PBKDF2 with HMAC-SHA256, 128-bit salt, 256-bit subkey, 10000 iterations.
I hope this would be as easy as some configuration setting in future rather than having to implement custom implementation since all the code is already there.
Update:
services.Configure<PasswordHasherOptions>(options => options.CompatibilityMode = PasswordHasherCompatibilityMode.IdentityV3);
回答1:
The default shouldn't be V2, the default is the newer format, as you can see in 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;
If the first byte of the hashed password is 0x01 then it's a version 3 hash.
If you're seeing 0x00 then either it's configured elsewhere in your code, or there's a bug, in which case please log it on GitHub.
来源:https://stackoverflow.com/questions/36394898/how-to-set-passwordhashercompatibilitymode-identityv3-in-asp-net-5-identity