我正在使用默认的 SQL 提供程序、默认的 web.config 设置来实现 ASP.NET 成员资格。
我注意到密码是散列的。但我不知道 asp.net 如何对我的密码进行哈希处理,所以我不确定黑客是否有可能解密这个?
如果 asp.net 使用相同的规则来散列密码,这是每个人都知道的。比黑客可以轻松破解它。
例如。如果 asp.net 使用 MD5(123456),结果是“E10ADC3949BA59ABBE56E057F20F883E”,那么黑客可能有一个 MD5 字典来查找它。
我的设置是:
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices"
enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
applicationName="/" />
-- SQL 语句:
SELECT am.UserId, am.[Password], am.PasswordSalt FROM aspnet_Membership am
-- 结果是:
F10A635D-22DA-419C-84E6-767D2A35A010,tpeiwPt5+kFbcocQZOuc4aoHeuI=,PVq9dPtbFxze9Erbfd7HrA==
密码是123456,变成“tpeiwPt5+kFbcocQZOuc4aoHeuI=”。
这个值在不同的机器或不同的应用程序上总是相同的吗?
如果这个值与盐“PVq9dPtbFxze9Erbfd7HrA==”有关,那么黑客是否有可能使用这个盐来解密我的密码?