SHA加密

在线SHA1/SHA256/SHA512哈希加密工具

关于SHA加密

SHA 系列是 NIST 发布的哈希标准(FIPS 180-4):SHA-1 输出 160 位,SHA-256 与 SHA-512 属于 SHA-2 家族,分别输出 256 位即 64 个十六进制字符、512 位即 128 个。和 MD5 一样,它们是单向摘要,用于校验文件是否被篡改、生成接口签名与证书指纹。关键差别在抗碰撞强度:SHA-1 已被实证攻破(2017 年 SHAttered 攻击造出两份不同 PDF 而摘要相同),浏览器与 CA 均已停用,新设计从 SHA-256 起步即可。

SHA加密怎么用

  1. 粘贴待计算的文本,或按签名规则把多个字段依次拼好后再粘入。
  2. 选择算法:SHA-1、SHA-256 或 SHA-512,按对接方文档要求的那一种来选。
  3. 核对输出长度,SHA-256 应为 64 个十六进制字符、SHA-512 为 128 个,长度不符说明选错了算法。
  4. 需要 Base64 形式的摘要时切换显示方式,两种写法指向同一段哈希值。
  5. 把输入与结果成对记录下来,用于后续复核或填入接口的签名参数。

使用提示

  • 十六进制和 Base64 只是同一段摘要的两种写法,长度分别是 2n 与约 1.33n,对接时必须按对方文档选,混用会直接导致验签失败。
  • SHA-1 只应出现在兼容遗留系统的场景,比如老版本 Git 对象或某些历史 TOTP 实现,任何新设计的签名与校验都别再用它。
  • 哈希前先按约定规则拼接待签内容:字段顺序、是否带分隔符、空值是否参与,错一个字符结果就完全不同,这是签名报错最常见的来源。

SHA加密常见问题

SHA-256 和 MD5 的区别是什么?
两者都是单向摘要,区别在输出长度与抗碰撞能力:MD5 输出 128 位且已被高效碰撞攻破,SHA-256 输出 256 位,目前没有公开的实用碰撞。速度和兼容性上 MD5 更快也更容易找到旧实现,但新项目做校验或签名应当选 SHA-256。
SHA-1 现在还能用吗?
能计算但已不适合新场景。2017 年的 SHAttered 攻击用不到 11 万美元的算力就构造出摘要相同的两份不同文件,成本还在继续下降;浏览器对 SHA-1 证书直接报错,主流 CA 与代码平台也已停止签发。只有目标系统完全不支持 SHA-2 时才保留。
哈希值能反解回原文吗?
不能。哈希是压缩映射,输入空间无限而输出定长,必然多对一,没有逆运算。所谓破解是猜一个原文再算一遍做比对,所以长且随机的口令比短而复杂符号的口令更难被猜到。
为什么文件校验的哈希值和官网对不上?
先确认算法一致,有的站点公布 SHA-1、有的公布 SHA-256,混着比必然不同;再看下载是否被中断或走了镜像替换了文件。如果算法和文件都对,用本地命令 certutil -hashfile 文件名 SHA256 再算一遍交叉验证,可以排除工具本身的问题。