如何创建自定义asp.net sql成员资格提供程序以在SHA256中保存散列密码?

时间:2010-12-18 20:46:42

标签: encryption c#-3.0 passwords asp.net-membership

我正在使用ASP.net成员资格提供程序构建一个Web应用程序来管理身份验证/授权。我已经做了很多次,但是这次我需要在SHA256中存储散列密码,而不是标准密码散列,即SHA1。

在SQLMembershipProvider上查看可覆盖的方法至少有一个我认为我必须覆盖才能让这只小狗工作:

byte[] EncryptPassword(byte[] password)

我还必须更改aspnet_Membership.Password字段以应对新散列的密码,目前它只有nvarchar(128)。

我希望那些在扩展SqlMembershipProvider方面有更多经验的人可能会给我一些指示。

感谢。

注意:虽然我正在使用.net 2.0成员资格提供程序,但我实际上正在运行.net 3.5

1 个答案:

答案 0 :(得分:0)

在创建自己的会员资格提供者之前,我会首先尝试按照此答案中列出的解决方案:

What is default hash algorithm that ASP.NET membership uses?

据我所知SHA256 outputs a 64 character string,所以你应该对varchar(128)字段安全。