我正在尝试编写一个函数来获取字符串和sha512就像这样?
public string SHA512(string input)
{
string hash;
~magic~
return hash;
}
Run Code Online (Sandbox Code Playgroud)
魔术应该是什么?
Car*_*tte 62
您的代码是正确的,但您应该处置SHA512Managed实例:
using (SHA512 shaM = new SHA512Managed())
{
hash = shaM.ComputeHash(data);
}
Run Code Online (Sandbox Code Playgroud)
512位是64字节.
要将字符串转换为字节数组,您需要指定编码.如果要创建哈希码,UTF8是可以的:
var data = Encoding.UTF8.GetBytes("text");
using (...
Run Code Online (Sandbox Code Playgroud)
Naz*_*zar 17
这来自我的一个项目:
public static string SHA512(string input)
{
var bytes = System.Text.Encoding.UTF8.GetBytes(input);
using (var hash = System.Security.Cryptography.SHA512.Create())
{
var hashedInputBytes = hash.ComputeHash(bytes);
// Convert to text
// StringBuilder Capacity is 128, because 512 bits / 8 bits in byte * 2 symbols for byte
var hashedInputStringBuilder = new System.Text.StringBuilder(128);
foreach (var b in hashedInputBytes)
hashedInputStringBuilder.Append(b.ToString("X2"));
return hashedInputStringBuilder.ToString();
}
}
Run Code Online (Sandbox Code Playgroud)
请注意: