如何不使用外部库计算SHA 512/256或SHA 512/224?
在.Net 6中,SHA 512散列可以计算为(documentation)。下面是我的示例:
public string GetHashStringSHA512(string data)
{
using (SHA512 sha512 = SHA512.Create())
{
byte[] bytes = sha512.ComputeHash(Encoding.UTF8.GetBytes(data));
StringBuilder builder = new StringBuilder();
for (int i = 0; i < bytes.Length; i++)
{
builder.Append(bytes[i].ToString("x2"));
}
return builder.ToString();
}
}
1条答案
按热度按时间6vl6ewon1#
正如注解中所指出的,.Net库似乎还没有实现SHA 512/256或SHA 512/224。
要使用外部库计算SHA 512/256或SHA 512/224 * 而不使用 *,则需要实现specification。有document on the Cryptology ePrint Archive that includes some sample code。另请参阅NIST example。有多种开源解决方案也可用作您自己代码的起点。例如包括SHA 512/256和SHA 512/224两者的SHA512 library at wolfSSL。