-
hashlib
特点
1 只要传入的内容一样,得到的hash值必然一样=====>要用明文传输密码文件完整性校验
2 不能由hash值返解成内容=======》把密码做成hash值,不应该在网络传输明文密码(只能有内容返回hash值)
3 只要使用的hash算法不变,无论校验的内容有多大,得到的hash值长度是固定的(如从网上下载文件要进行hash校验,保证网络传输没有丢包)
基于1和3可以做文件下载一致性的校验
基于1和2可以对用户密码进行加密
MD5的update使用是不能连续的,这样会把多次数据进行拼接,
import hashlib
print(hashlib.md5('123456'.encode(encoding='GBK')).hexdigest()) e10adc3949ba59abbe56e057f20f883e
print(hashlib.md5('123456'.encode(encoding='UTF-8')).hexdigest()) e10adc3949ba59abbe56e057f20f883e
print(hashlib.md5(b'123456').hexdigest()) e10adc3949ba59abbe56e057f20f883e
md5 = hashlib.md5()
md5.update(b'123456')
print(md5.hexdigest()) e10adc3949ba59abbe56e057f20f883e
md5.update(b'123456')
print(md5.hexdigest()) ea48576f30be1669971699c09ad05c94