首页 > 解决方案 > 检查字符串是否被加密 r 不在 c# 中

问题描述

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

标签: c#

解决方案


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

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

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

你也可以从另一面来处理这个问题。

在您的登录功能中,将输入密码与数据库值进行比较。如果匹配,那么您有一个 Unhash 密码并且可以转换它。

或者它没有,你尝试比较哈希输入和数据库值,如果匹配你有一个哈希密码,用户应该登录。否则没有密码匹配,登录失败。


推荐阅读