如何查找密码是否已通过C#加密(SHA256算法)。我有一个带有密码列的客户表。我需要在c#.net中找到哪些密码已加密而哪些未加密
答案 0 :(得分:0)
SHA256哈希是一个32Byte []字符串,它可以是 64个字符长的字符串。
取决于基数的有效字符可能是 [a-fA-F0-9]
,也可能是base64 [0-9a-zA-Z+/]
。
但这还不够,因为FOOBAR01
超过8次的复制既是密码,又是来自2^(32*8)
可能的纯文本的哈希。
您只应强制用户在下次连接时更改密码,并一直对它们进行哈希处理。
您也可以从另一侧解决问题。
在登录功能中,将输入的密码与数据库值进行比较。如果匹配,则您具有Unhash密码并可以将其转换。
否则,您尝试比较Hashed输入和数据库值, 如果匹配,则您拥有急需的密码,用户应登录。 否则没有密码匹配,登录失败。