我有从字符串生成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。任何想法怎么做?谢谢。
答案 0 :(得分:31)
哈希是单向的。你不能(很容易)得到它。你可能想要实际加密。
答案 1 :(得分:1)
是。哈希是单向的。请使用像RijndaelManaged这样的对称加密类。
这是我正在使用的RijndaelSimple类: http://www.obviex.com/samples/encryption.asp
答案 2 :(得分:0)
您无法将hash
转换回您计算哈希值的字符串。
如果你想要它,那么你必须比较哈希与每个目标字符串哈希。
如果其中一个与散列匹配,则该散列来自目标字符串。
使用:如果您想将passwords
存储在database
中,则可以存储其哈希值而非密码。即使黑客可以访问您的数据库,他不能得到密码,因为它是哈希。了解我们创建哈希的字符串的唯一方法是匹配它与所需的字符串!