如何反转此哈希方法

问题描述 投票:-3回答:1

如果可能,如何撤消通过此方法生成的哈希?

public static string GenerateHash(string input)
{
   byte[] bytes = Encoding.UTF8.GetBytes(input);
   SHA256Managed sHA256ManagedString = new SHA256Managed();
   byte[] hash = sHA256ManagedString.ComputeHash(bytes);
   return Convert.ToBase64String(hash);
}  
c# hash passwords sha256
1个回答
0
投票

它是散列的,这意味着它不是一条双向道路。简短的答案是您不能撤消它。更好的答案是您必须对其进行暴力破解。即编写一个程序,该程序遍历所有字符组合(“ a”,“ b”,“ aa”,“ ab”等),通过哈希将它们发送并比较结果。当哈希匹配时,您已经找到了原始字符。显然有很多组合,因此请尝试限制输入。您知道原始字符只是小写字母吗?恭喜,您已将其范围从大写字母,数字,特殊字符等进行了缩小。您知道最初大约使用了多少个字符吗?即密码不得少于8个字符或超过16个字符。还可能存在其他允许缩小密码范围的规则,例如至少x位数字和y个特殊字符。祝你好运!

© www.soinside.com 2019 - 2024. All rights reserved.