如何在.Net 6中计算SHA 512/256?

sr4lhrrt  于 2023-02-20  发布在  .NET
关注(0)|答案(1)|浏览(246)

如何不使用外部库计算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();
        }
    }
6vl6ewon

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

相关问题