在 ASPNet 中更改密码验证程序 Class。身份命名空间影响现有密码?
Change Password Validator Class in the ASPNet. Identity Namespace affect existing passwords?
我正在为现有的 ASPNet MVC 项目添加 "Forgot Password" 功能,并且在配置 PasswordValidator 时,我想知道如果我进行任何更改,这将如何影响现有的生产用户。
//Configure validation logic for passwords
manager.PasswordValidator = new PasswordValidator
{
RequiredLength = 6,
RequireNonLetterOrDigit = false,
RequireDigit = false,
RequireLowercase = false,
RequireUppercase = false,
};
这是之前配置PasswordValidation的方式。如果我进行更改以使验证器更加严格,这是否会影响已经拥有更多 "loose" 个密码的现有生产用户?
在 .NET 中,密码仅在创建期间进行验证。创建后,如果更改验证规则,存储在数据存储中的密码将不会根据新规则重新验证,直到用户再次更改它。至少,密码在您的数据存储中被加密。根据安全设置,密码可能会被散列。无法检索散列密码以重新验证(只能比较散列)。此外,解密密码并重新验证它们将是一个巨大的处理拖累和潜在的安全漏洞。 .NET 不这样做。您不必担心此更改会影响现有生产用户。
我正在为现有的 ASPNet MVC 项目添加 "Forgot Password" 功能,并且在配置 PasswordValidator 时,我想知道如果我进行任何更改,这将如何影响现有的生产用户。
//Configure validation logic for passwords
manager.PasswordValidator = new PasswordValidator
{
RequiredLength = 6,
RequireNonLetterOrDigit = false,
RequireDigit = false,
RequireLowercase = false,
RequireUppercase = false,
};
这是之前配置PasswordValidation的方式。如果我进行更改以使验证器更加严格,这是否会影响已经拥有更多 "loose" 个密码的现有生产用户?
在 .NET 中,密码仅在创建期间进行验证。创建后,如果更改验证规则,存储在数据存储中的密码将不会根据新规则重新验证,直到用户再次更改它。至少,密码在您的数据存储中被加密。根据安全设置,密码可能会被散列。无法检索散列密码以重新验证(只能比较散列)。此外,解密密码并重新验证它们将是一个巨大的处理拖累和潜在的安全漏洞。 .NET 不这样做。您不必担心此更改会影响现有生产用户。