Python计算文件SHA512哈希值出现异常输出,求排查帮助
问题排查与修复
你看到的输出不是异常,核心问题是没有调用hexdigest方法——你把方法对象本身赋值给了hash变量,所以打印时输出的是方法的内存地址信息。
修复后的代码
import hashlib h = hashlib.sha512() with open("baseline.txt", 'r') as f: contents = f.read() h.update(contents.encode('utf8')) hash_result = h.hexdigest() # 这里要加括号调用方法 print(hash_result)
额外优化建议
- 删掉无用的
from base64 import encode导入,你的代码里没用到它。 - 如果监控的文件较大,一次性读取整个文件可能占用过多内存,建议逐块读取更新哈希;同时用二进制模式打开文件,能避免编码差异导致的哈希不一致问题,更适合文件完整性校验场景:
import hashlib h = hashlib.sha512() with open("baseline.txt", 'rb') as f: while chunk := f.read(4096): # 每次读取4KB块 h.update(chunk) hash_result = h.hexdigest() print(hash_result)
内容的提问来源于stack exchange,提问作者Michael Torkaman
相关产品推荐
相关产品推荐

