python模块之hashlib模块

  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())
原文地址:https://www.cnblogs.com/zxc-Weblog/p/8342580.html