You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在.NET 6中无需外部库计算SHA512/256或SHA512/224?

在.NET 6中不依赖外部库计算SHA512/256或SHA512/224的方法

在.NET 6中,原生支持SHA512哈希计算。SHA512/256和SHA512/224本质是SHA512的变体,无需额外依赖外部库,只需对SHA512的计算结果做截断处理即可:SHA512/256取结果前256位(32个字节),SHA512/224取结果前224位(28个字节)。

示例代码

计算SHA512/256哈希值

public string GetHashStringSHA512_256(string data)
{
    using (SHA512 sha512 = SHA512.Create())
    {
        byte[] fullHash = sha512.ComputeHash(Encoding.UTF8.GetBytes(data));
        // 截取前32个字节作为SHA512/256结果
        byte[] truncatedHash = fullHash.Take(32).ToArray();

        StringBuilder builder = new StringBuilder();
        foreach (byte b in truncatedHash)
        {
            builder.Append(b.ToString("x2"));
        }
        return builder.ToString();
    }
}

计算SHA512/224哈希值

public string GetHashStringSHA512_224(string data)
{
    using (SHA512 sha512 = SHA512.Create())
    {
        byte[] fullHash = sha512.ComputeHash(Encoding.UTF8.GetBytes(data));
        // 截取前28个字节作为SHA512/224结果
        byte[] truncatedHash = fullHash.Take(28).ToArray();

        StringBuilder builder = new StringBuilder();
        foreach (byte b in truncatedHash)
        {
            builder.Append(b.ToString("x2"));
        }
        return builder.ToString();
    }
}

完整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();
    }
}

内容的提问来源于stack exchange,提问作者Akif T

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 07:31:07