c# - 如何使用 C# 取消散列?

标签 c# hash sha

有人可以反转我正在使用的这个方便的哈希码吗?

using System.Security.Cryptography;

public static string EncodePasswordToBase64(string password)
{  byte[] bytes   = Encoding.Unicode.GetBytes(password);
   byte[] inArray = HashAlgorithm.Create("SHA1").ComputeHash(bytes);
   return Convert.ToBase64String(inArray);
}

我最终做的一切都失败了:(。

最佳答案

不,您不能反转散列。典型的过程是将其他输入与您拥有的哈希进行比较,以检查它们是否相同。

喜欢(伪):

initial  = Hash(password);
possible = Hash("test");

if( initial == possible ){
    // we infer that password = "test"
}

但请注意,不应再使用 SHA1、SHA0 和 MD5; (由于每个破损程度不同)。你应该使用 SHA-2

关于c# - 如何使用 C# 取消散列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1501230/

相关文章:

c# - 如何在 linq 中重现 MySQL 语句

Android Key 密码丢失,但我有 keystore 密码

security - SHA-256 哈希值能否从相同数据的 SHA-512 哈希值导出?

objective-c - 对于 objective-c 中的相同输入,每次都会生成不同的 HMac 摘要

java - 位移乘法循环

c# - 通过将表名、列名和值作为参数从实体进行动态 Linq SearchFor

c# - 在 EF Code First 中过滤导航属性

c# - 如何创建临时文件来缓存库的启动工作?

ruby-on-rails - 如何从 hstore 列中获取二维散列作为输出?

algorithm - 双哈希如何工作?