hashlib模块:提供摘要算法
格式:
hashlib格式: obj = hashlib.算法(md5,sha....) obj.update(摘要内容:bytes类型) result = obj.hexdigest()
具体使用的方法:
abstract = hashlib.md5() abstract1 = hashlib.md5() abstract2 = hashlib.sha1() abstract.update(bytes('密文', encoding='utf-8')) abstract1.update(bytes('密文', encoding='utf-8')) abstract2.update(bytes('密文', encoding='utf-8')) print(abstract.hexdigest()) # c099362aa8fc5c5d1be88e4c2c42ea62 print(abstract1.hexdigest()) # c099362aa8fc5c5d1be88e4c2c42ea62 print(abstract2.hexdigest()) # 058115813f2cbb11f638a736c22b3bd32a5e46dc
从上面的例子看出摘要算法的特点:
摘要算法特点:可用于文件的一致性验证 1,对于相同的字符串,同一种算法摘要后的值总是相同的 2,对于相同的字符串,不同的算法摘要后的值应该是不相同的
加盐摘要:进一步提高密文的安全性,防止撞库!
abstract = hashlib.md5(bytes('加盐', encoding='utf-8')) abstract.update(bytes('密文', encoding='utf-8')) print(abstract.hexdigest()) # 17de8554897051e741525a38fc250adf
动态加盐:使用用户名的某一部分作为加盐的对象或和盐进行拼接后加盐。
user = input('username:') abstract = hashlib.md5(bytes(user, encoding='utf')) abstract.update(bytes('密文', encoding='utf-8')) print(abstract.hexdigest())