ASP.NET成员提供程序的不同哈希算法?

时间:2009-06-05 11:08:49

标签: asp.net-membership

有谁知道是否可以将ASP.NET成员资格API配置为使用SHA-256或SHA-512?我真的不想写下我自己的写作,我们的雇主有一个不允许MD5或SHA-1的加密策略。我从微软找到的只有HashAlgorythmType enum

...但这仅包含MD5和SHA1

谢谢,

基诺

4 个答案:

答案 0 :(得分:4)

看起来确实可以(假设您正在使用SqlMembershipProvider)。 它支持SHA1,MD5,SHA256,SHA384和SHA512

SqlMembershipProvider使用此代码实例化散列算法:

// MembershipPasswordFormat.Hashed
HashAlgorithm s = HashAlgorithm.Create( Membership.HashAlgorithmType );
bRet = s.ComputeHash(bAll);

Membership.HashAlgorithmType(类型为string)是Web.config中的membership元素的hashAlgorithmType属性

有关所有可能值的完整列表,请参阅: http://msdn.microsoft.com/en-us/library/wet69s13(v=vs.100).aspx

答案 1 :(得分:3)

实际上,格式由配置文件中.../membership/providers/add元素的passwordFormat属性决定,该属性定义了提供程序的设置。

可能的值由MembershipPasswordFormat enumeration给出,它不能控制所使用的哈希算法。

答案 2 :(得分:3)

您可以使用hashAlgorithmType属性更改哈希算法。 您还可以将算法名称映射到类。 因此,如果您想要除MD5和SHA1之外的算法,请添加新的映射。

有关详细信息,请参阅:
membership Element (ASP.NET Settings Schema)
Membership.HashAlgorithmType Property

答案 3 :(得分:0)

此答案可以提供帮助。 ASP.NET成员资格提供程序现在可以使用PBKDF2(比SHA1,SHA256-SHA512好得多):https://stackoverflow.com/a/60273188/2508781