SHA512哈希到C#中的字符串

时间:2012-08-27 14:27:48

标签: c# string hash sha512

我有从字符串生成SHA512的代码。     

 public static string GetCrypt(string text)
        {
            string hash = "";
            SHA512 alg = SHA512.Create();
            byte[] result = alg.ComputeHash(Encoding.UTF8.GetBytes(text));
            hash = Encoding.UTF8.GetString(result);
            return hash;
        }
    
现在我必须将hash转换回string。任何想法怎么做?谢谢。

3 个答案:

答案 0 :(得分:31)

哈希是单向的。你不能(很容易)得到它。你可能想要实际加密。

答案 1 :(得分:1)

是。哈希是单向的。请使用像RijndaelManaged这样的对称加密类。

这是我正在使用的RijndaelSimple类: http://www.obviex.com/samples/encryption.asp

同一链接的缓存版本在这里: http://webcache.googleusercontent.com/search?q=cache:WyVau-XgIzkJ:www.obviex.com/samples/encryption.asp&hl=en&prmd=imvns&strip=1

答案 2 :(得分:0)

您无法将hash转换回您计算哈希值的字符串。

如果你想要它,那么你必须比较哈希与每个目标字符串哈希。

如果其中一个与散列匹配,则该散列来自目标字符串。

使用:如果您想将passwords存储在database中,则可以存储其哈希值而非密码。即使黑客可以访问您的数据库,他不能得到密码,因为它是哈希。了解我们创建哈希的字符串的唯一方法是匹配它与所需的字符串!