【Python】基础部分 -- 常用模块 -- hash/MD5 加密算法
hash/MD5 加密算法
1) hash特性
hash只保证程序内结果一致,可能结果会重复
2) md5说明
MD5是基于128位hash值的算法,一个输入对应的结果是唯一的
3) md5特点:
1.压缩性: 任意长度的数据,算出的MD5的长度都是固定的
2.容易计算: 从原始数据计算出MD5值很容易
3.抗修改性:对原数据进行任何改动,生成的MD5值区别都会很大
4.强抗碰撞:已知原数据和MD5,想找到一个具有相同MD5值的数据是非常困难的
4) md5的用途
1.防篡改
2.防止直接看到明文
3.防止抵赖(数字签名)
import hashlib
# 待加密信息
str = 'this is a md5 test.'
# 创建md5对象
hl = hashlib.md5()
# Tips
# 此处必须声明encode
# 若写法为hl.update(str) 报错为: Unicode-objects must be encoded before hashing
hl.update(str.encode(encoding='utf-8'))
print('MD5加密前为 :' + str)
print('MD5加密后为 :' + hl.hexdigest())