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

SHA1CryptoServiceProvider与SHA256Managed是否应返回相同哈希值

你的加密库使用方式没有任何问题。

你看到的相关提问存在表述偏差,正确的结论是同一哈希算法的不同实现类,对相同输入会生成一致的哈希值,你用到的两个类对应完全不同的哈希算法,输出不一致才是正常现象:

  • SHA1CryptoServiceProvider 是SHA1算法的CSP(加密服务提供商)实现,输出长度固定为160位(20字节),你测试得到的YlBiWyJt9ihwriOvjT+sB2DXFYg=就是标准的SHA1计算结果。
  • SHA256Managed 是SHA256算法的托管代码实现,输出长度固定为256位(32字节),你测试得到的e8+diSmPG/rhb6Au1rYZCP0vqN5F3Y4hU6PEcwB2Uyg=就是标准的SHA256计算结果。

如果你想验证同算法不同实现的输出一致性,可以补充测试如下代码,就会得到完全相同的输出:

var password = "TestPassword";
using (var csp = new SHA1CryptoServiceProvider())
{
    var hashBytes = csp.ComputeHash(Encoding.UTF8.GetBytes(password));
    Console.WriteLine(Convert.ToBase64String(hashBytes));
}
using (var managed = new SHA1Managed())
{
    var hashBytes = managed.ComputeHash(Encoding.UTF8.GetBytes(password));
    Console.WriteLine(Convert.ToBase64String(hashBytes));
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 02:54:03