有谁知道是否可以将ASP.NET成员资格API配置为使用SHA-256或SHA-512?我真的不想写下我自己的写作,我们的雇主有一个不允许MD5或SHA-1的加密策略。我从微软找到的只有HashAlgorythmType enum
...但这仅包含MD5和SHA1
谢谢,
基诺
答案 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