如何使用Python 2.x与3.x验证Excel文件数据未被篡改?
校验Excel文件完整性(防止篡改)的简易方法
嗨,我来帮你搞定这个需求!要确认Excel文件的数据没被篡改,最简便的方式就是计算文件的校验和(哈希值)——只要文件内容有任何细微改动,生成的哈希值就会完全不同,对比前后的哈希结果就能快速判断文件是否被修改。
一、Linux环境下的快速命令行方式
直接用系统自带的SHA512校验工具,执行以下命令:
sha512sum excel_file.xlsx
执行后会输出一串唯一的十六进制字符串,把这个结果保存好,后续校验时再跑一次命令,对比两次的字符串即可。
二、Python 2.x/3.x兼容实现
下面这段代码和上面的Linux命令生成的结果完全一致,而且在Python 2.6+和所有3.x版本都能正常运行:
import hashlib # 创建SHA512哈希对象 h = hashlib.sha512() # 以二进制模式打开文件(避免编码问题,确保读取完整的文件内容) with open('excel_file.xlsx', 'rb') as f: contents = f.read() h.update(contents) # 输出十六进制格式的哈希值 print(h.hexdigest())
小提示:
- 一定要用
rb(二进制读取模式)打开文件,因为Excel是二进制格式文件,用文本模式读取会破坏内容,导致哈希值不准确。 - 保存好第一次生成的哈希值,之后每次需要校验时,重新运行代码对比结果就行——如果结果不一样,说明文件肯定被修改过了。
内容的提问来源于stack exchange,提问作者rodoso
相关产品推荐
相关产品推荐

