如何在不使用外部库的情况下计算SHA512/256或SHA512/224?
在 .Net 6 中,可以计算 SHA512 哈希(文档)。这是我的例子:
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();
}
}
如评论中所述,.Net 库似乎未实现 SHA512/256 或 SHA512/224。
要使用外部库计算 SHA512/256 或 SHA512/224 ,需要实施规范。 Cryptology ePrint Archive 上有一个文档,其中包含一些示例代码。另请参阅NIST 示例。有多种开源解决方案也可用作您自己代码的起点,例如 wolfSSL 的 SHA512 库,其中包括 SHA512/256 和 SHA512/224。