8.1.4 校验和
除了压缩和解压缩函数,zlib还包括两个用于计算数据的校验和的函数,分别是adler32()和crc32()。这两个函数计算出的校验和都不能认为是密码安全的,它们只用于数据完整性验证。
import zlib
data = open('lorem.txt','rb').read()
cksum = zlib.adler32(data)
print('Adler32:{:12d}'.format(cksum))
print(' :{:12d}'.format(zlib.adler32(data,cksum)))
cksum = zlib.crc32(data)
print('CRC-32 :{:12d}'.format(cksum))
print(' :{:12d}'.format(zlib.crc32(data,cksum)))
这两个函数取相同的参数,包括一个包含数据的字节串和一个可选值,这个值可作为校验和的起点。这些函数会返回一个32位有符号整数值,这个值可以作为一个新的起点参数再传回给后续的调用,以生成一个动态变化的校验和。
运行结果: