作者:ruigh | 来源:互联网 | 2024-12-22 20:58
在对路由器固件进行分析的过程中,我们遇到了需要计算文件CRC32校验值的需求。以下是通过Python实现这一功能的代码示例:
import zlib
def calculate_crc32(file_path):
"""计算文件的CRC32校验值"""
crc_value = 0
with open(file_path, 'rb') as file_handle:
while True:
chunk = file_handle.read(65535)
if not chunk:
break
crc_value = zlib.crc32(chunk, crc_value)
return format(crc_value & 0xFFFFFFFF, '08X')
if __name__ == '__main__':
files = ['1', '2', '3', '4', '5', '6', '7', '0']
for file_name in files:
print(f'File {file_name}: {calculate_crc32(file_name)}')
上述代码实现了对指定文件路径读取并逐块计算CRC32校验值的功能。每次读取65535字节的数据块,直到文件末尾。最终返回的是一个格式化的十六进制字符串表示的CRC32值。
运行结果如下图所示: