我认为最好的是 SHA1 哈希算法,标准是 128 位。我记得当我使用它完成我的 PHP 论文时 :)。这是最安全的。
使用表单身份验证 (
https://msdn.microsoft.com/en-us/library/t8yy6w3h.aspx
):
<configuration>
<connectionStrings>
<add name="SqlServices" connectionString="Data Source=MySqlServer;Integrated Security=SSPI;Initial Catalog=aspnetdb;" />
</connectionStrings>
<system.web>
<authentication mode="Forms">
<forms loginUrl="login.aspx" />
</authentication>
<authorization>
<deny users="?" />
</authorization>
<membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="20">
<providers>
<add name="SqlProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="SqlServices"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
passwordFormat="Hashed"
applicationName="/" />
</providers>
</membership>
</configuration>
</system.web>
你只需更改实例名称和登录页面。
默认哈希算法。是 SHA1,它在 .NET 4.0 框架中更改为 HMACSHA256 或 SHA256。你可以覆盖它:
<membership
defaultProvider="provider name"
userIsOnlineTimeWindow="number of minutes"
hashAlgorithmType="SHA1">
<providers>...</providers>
</membership>
您可以指定您的 .NET 版本支持的最大 SHA,对于 .NET 4 和最新版本是 SHA512,但默认值必须是 ok。
要添加您的内容,您可以在此处阅读(如果您不想全局使用它,它只是一个要在 machine.config 或 web.config 中配置的 .dll 文件):
https://msdn.microsoft.com/en-us/library/693aff9y.aspx
使用 Membership.Validate 在登录时验证用户。
如果您使用 2013 年出现的新 MVC 东西,那么您只需实现持有电子邮件的用户,仅此而已,它必须是 IUser。
有一个方法 UserManager.CreateUser(TUser user, string password)