SHA-1逻辑函数维基百科与FIPS 180-4定义差异及计算结果异常疑问
该现象的原因主要有两点:
- 你参考的「标准手册」内容存在问题
要么是翻译、印刷错误,要么是误用了已经废弃的SHA-0(SHA-1的前身)的函数定义。SHA-1的正式官方标准FIPS PUB 180-4中给出的f₀到f₇₉逻辑函数定义,和维基百科公开的经过多方校验的内容完全一致,二者本身不存在官方层面的差异。 - 实现逻辑没有匹配标准的配套规则
就算函数定义本身正确,SHA-1计算还要求消息块按大端序(最高有效字节在前)处理,32位字的位运算也要匹配大端位序规则。如果只单独照搬函数公式,没有调整代码里的字节、位序逻辑,最终得到的计算结果自然会出错。
目前所有公开的SHA-1在线计算工具都是严格对齐FIPS 180-4正式标准开发的,和维基百科的定义完全匹配,所以计算结果都一致。
内容的提问来源于stack exchange,提问作者crix
相关产品推荐
相关产品推荐

