Sql server 默认MVC4密码验证是如何工作的?

Sql server 默认MVC4密码验证是如何工作的?,sql-server,asp.net-mvc-4,passwords,Sql Server,Asp.net Mvc 4,Passwords,我已经创建了一个带有登录验证的默认MVC4项目 当我注册密码为123456的帐户时 为什么它存储在SQL数据库中为:alwsalpvtehugr7w2jagwox3w0re5gc+yYDITvCpCdHmIIrX7vwMoTW3cEbMsGd4w== 如果是,它如何比较这两个字符串以检查输入的密码是否正确?默认情况下,当密码存储在SQL数据库中时,它们是加密的。当您再次尝试登录时,密码将在尝试身份验证之前加密,然后将此加密密码与存储在数据库中的密码进行比较 令人不安的是,公司数据库遭到破坏的情况

我已经创建了一个带有登录验证的默认MVC4项目

当我注册密码为123456的帐户时

为什么它存储在SQL数据库中为:
alwsalpvtehugr7w2jagwox3w0re5gc+yYDITvCpCdHmIIrX7vwMoTW3cEbMsGd4w==


如果是,它如何比较这两个字符串以检查输入的密码是否正确?

默认情况下,当密码存储在SQL数据库中时,它们是加密的。当您再次尝试登录时,密码将在尝试身份验证之前加密,然后将此加密密码与存储在数据库中的密码进行比较


令人不安的是,公司数据库遭到破坏的情况非常普遍。想象一下,如果一个黑客得到了你的数据库的副本,而每个人的用户名和密码都是纯文本的。大多数人在多个站点上使用相同的密码,因此可以想象其后果。然而,如果黑客只有加密的密码,就没有办法逆转salt并获得原始的纯文本密码

这个问题在StackOverflow上已被多次回答:


你指的是哪个MVC?因此,如果黑客获得了密码SQL数据库,他们所要做的就是在谷歌搜索“默认SQL加密模式”,然后他们就可以破解密码??密码加密的美妙之处在于它是单向的。解密密码所需的计算能力是天文数字。用于加密密码的“公式”无法逆转。实际上,我不知道数据库中的密码字符串是“密码散列”,或者是由加密产生的,因此这些问题对我没有帮助。