当前位置:  开发笔记 > 后端 > 正文

如何在Asp.Net identity 2中手动检查密码?

如何解决《如何在Asp.Netidentity2中手动检查密码?》经验,为你挑选了1个好方法。

这实际上可能更像是一个概念性问题.在Asp.Net Identity中,每次执行时,PasswordHasher都会为同一个字符串生成不同的哈希:

new PasswordHasher.HashPassword("myString");

现在,如果由于某种原因我需要手动将用户的输入与数据库中保存的密码进行比较,那么当我散列用户输入的密码时,我很可能会得到一个不同的字符串,而不是存储在数据库中的密码.

有人可以向我解释一下吗?不应该在相同的散列中散列相同的字符串,如果不是,Identity本身如何实现两个不同的散列实际上是相同的?



1> Sam Farajpou..:

PasswordHasher每次产生不同的哈希,因为它使用盐析技术.此技术可保护散列密码免受字典攻击.顺便说一下,您可以使用以下代码手动验证密码:

if(PasswordHasher.VerifyHashedPassword("hashedPassword", "password") 
    != PasswordVerificationResult.Failed)
{
    // password is correct 
}

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有