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

Python使用hashlib计算SHA1哈希值未得到预期结果如何修正代码

问题原因

  • 你的代码中传入的b'aa'是两个ASCII编码的小写字母a,对应字节为0x61 0x61,和你需要处理的十六进制输入aa(对应单字节0xaa)完全不同,所以计算出的哈希值不符合预期。
  • 处理十六进制格式的输入时,不能直接把十六进制字符转成bytes类型,需要先做十六进制到字节的解析转换。

修正后代码

import hashlib

# 先将十六进制输入解析为对应字节序列
input_bytes = bytes.fromhex('aa')
hash_obj = hashlib.sha1(input_bytes)
hex_hash = hash_obj.hexdigest()
print(hex_hash)

补充说明

运行上述代码即可输出你预期的结果38469e8ea8e72d0b889f1905195e2f4b79b5bb50。如果后续需要计算其他十六进制输入的SHA1哈希,只需要替换bytes.fromhex()的参数为对应的十六进制字符串即可。如果你的实际需求是计算单个ASCII字符a的哈希,把输入替换为b'a'即可,对应结果为86f7e437faa5a7fce15d1ddcb9eaeaea377667b8,和你给出的预期值不符,说明你当前的实际需求是处理十六进制值aa。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 19:18:01