检查字符串是否已加密r不在c#中

时间:2018-08-03 11:29:56

标签: c#

如何查找密码是否已通过C#加密(SHA256算法)。我有一个带有密码列的客户表。我需要在c#.net中找到哪些密码已加密而哪些未加密

1 个答案:

答案 0 :(得分:0)

SHA256哈希是一个32Byte []字符串,它可以是 64个字符长的字符串。
取决于基数的有效字符可能是 [a-fA-F0-9],也可能是base64 [0-9a-zA-Z+/]

但这还不够,因为FOOBAR01超过8次的复制既是密码,又是来自2^(32*8)可能的纯文本的哈希。

您只应强制用户在下次连接时更改密码,并一直对它们进行哈希处理。

您也可以从另一侧解决问题。

在登录功能中,将输入的密码与数据库值进行比较。如果匹配,则您具有Unhash密码并可以将其转换。

否则,您尝试比较Hashed输入和数据库值, 如果匹配,则您拥有急需的密码,用户应登录。 否则没有密码匹配,登录失败。