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”时,它给出了当前上下文中不存在的错误。我怀疑这是由于公共和私人课程?
另外,我的另一个问题是,要有一个更有效的程序,我可以或者已经是这样的代码,我可以通过它输入一次,然后可以调用它来回传递变量。有点像,输入密码,哈希,然后传回去..然后在另一个文本框中将新变量传递给相同的哈希码并获得新的哈希变量?
先谢谢你们!
答案 0 :(得分:5)
要使用此方法,您可以存储返回值,如下所示:
string hashedString = GetCrypt(inputString);
然后根据需要使用hashedString
。
但是,你有一些问题:
alg.ComputeHash()
的结果不是UTF-8编码的字符串,因此Encoding.UTF8.GetString()
很可能会抛出异常,甚至不会执行您想要的操作。考虑使用Convert.ToBase64String()
(或convert the byte array to a hex string)。