SHA加密

SHA(Secure Hash Algorithm)是一系列密码哈希函数,用于生成数据的固定长度哈希值。

SHA 加密特点:

  • 无论输入多长的数据,输出都是固定长度的哈希值
  • 相同的输入始终产生相同的哈希值
  • 是单向加密,无法从哈希值还原原始数据
  • 安全性比 MD5 更高,抗碰撞能力更强

SHA 版本对比:

  • SHA-1:输出 160 位(40个十六进制字符),安全性较低,已不推荐使用
  • SHA-256:输出 256 位(64个十六进制字符),安全性较高,广泛应用
  • SHA-512:输出 512 位(128个十六进制字符),安全性最高,计算量更大

常见问题:

  • Q:默认用哪种算法,能换吗?
    A:默认选中SHA-256,直接输入内容就实时出结果,清空输入时结果也一并清空。点其它算法按钮会立即切换并重算,最后一次选的算法记在浏览器本地,下次打开仍保持,不用每次重选。
  • Q:拿到一段哈希,怎么知道对方用的是哪种算法?
    A:把原文粘进来,逐个点算法按钮,看哪个结果和对方的摘要一致(忽略大小写)。HEX长度只能粗分:40位是SHA-1、56位是224、64位是256、96位是384、128位是512;SHA-2与SHA3同长度时完全一样,光看长度分不出来,需对方确认算法名。用了HMAC的摘要还得知道密钥才能复现。
  • Q:HMAC密钥对哪些算法有效?
    A:9种算法都支持。密钥非空时当前算法改用HMAC计算,密钥按UTF-8文本处理,留空则是普通哈希。SHA3系列的HMAC并非NIST推荐的KMAC,做接口签名建议用SHA-256或SHA-512,并与对接方确认算法。
  • Q:「逐行哈希」会跳过空行吗,行首空格算不算?
    A:纯空白行会被跳过,其余每行单独算一个哈希,按原顺序一行一个。留下的行按原始内容计算,行首行尾的空格也参与哈希,不会被去掉。
  • Q:勾选「大写HEX」会重新计算哈希吗?
    A:不会。勾选或取消只是把结果框里已有的字母就地转成大写或小写,哈希值本身不变;改动输入内容、切换算法、改HMAC密钥或逐行模式才会重新计算。
  • Q:大写HEX、逐行哈希、HMAC密钥和选中的算法会保存吗?
    A:会。四项设置都记在浏览器本地,刷新页面后仍保持上次的勾选状态、密钥和算法。
  • Q:SHA-1、SHA-256和SHA3-256该选哪个?
    A:按对接方要求的算法选,不同算法的结果完全不同,不能互相验证。SHA-1已不推荐用于安全场景,签名校验常用SHA-256或SHA-512;SHA3系列基于Keccak结构,仅在对方明确要求时使用。

常见用途:

  • 为文本生成摘要,校验内容是否被改动
  • 数字签名和认证
  • 区块链技术中的区块哈希计算
  • 密码存储(结合盐值使用)