【发布时间】:2009-06-05 11:08:49
【问题描述】:
有谁知道是否可以将 ASP.NET 成员 API 配置为使用 SHA-256 或 SHA-512?我真的不想自己写,而且我们的雇主有一个不允许 MD5 或 SHA-1 的加密策略。我只能从 Microsoft 找到 HashAlgorythmType enum
...但这仅包含 MD5 和 SHA1
谢谢,
基诺
【问题讨论】:
有谁知道是否可以将 ASP.NET 成员 API 配置为使用 SHA-256 或 SHA-512?我真的不想自己写,而且我们的雇主有一个不允许 MD5 或 SHA-1 的加密策略。我只能从 Microsoft 找到 HashAlgorythmType enum
...但这仅包含 MD5 和 SHA1
谢谢,
基诺
【问题讨论】:
看起来确实有可能(假设您使用的是 SqlMembershipProvider)。 支持SHA1、MD5、SHA256、SHA384和SHA512
SqlMembershipProvider 使用此代码实例化哈希算法:
// MembershipPasswordFormat.Hashed
HashAlgorithm s = HashAlgorithm.Create( Membership.HashAlgorithmType );
bRet = s.ComputeHash(bAll);
Membership.HashAlgorithmType(字符串类型)是 Web.config 中成员资格元素的 hashAlgorithmType 属性
有关所有可能值的完整列表,请参阅: http://msdn.microsoft.com/en-us/library/wet69s13(v=vs.100).aspx
【讨论】:
实际上,格式由配置文件中定义提供程序设置的.../membership/providers/add 元素的passwordFormat 属性确定。
可能的值由MembershipPasswordFormat enumeration 给出,它无法控制所使用的哈希算法。
【讨论】:
您可以使用 hashAlgorithmType 属性更改哈希算法。 您还可以将算法名称映射到类。 因此,如果您想要 MD5 和 SHA1 以外的算法,请添加新的映射。
欲了解更多信息,请参阅:
membership Element (ASP.NET Settings Schema)
Membership.HashAlgorithmType Property
【讨论】:
这个答案可以提供帮助。 ASP.NET Membership Provider 现在可以使用 PBKDF2(比 SHA1、SHA256-SHA512 好得多):https://stackoverflow.com/a/60273188/2508781
【讨论】: