76-python- hashilb 模块

# 不管算法多么不同,摘要的功能始终不变
# 对于相同的字符串使用同一个算法进行摘要,得到的值总是不变的
# 使用不同算法对相同的字符串进行摘要,得到的值应该不同
# 不管使用什么算法,hashlib的方式永远不变

# sha 算法 随着 算法复杂程度的增加 我摘要的时间成本空间成本都会增加

# 摘要算法
# 密码的密文存储
# 文件的一致性验证
# 在下载的时候 检查我们下载的文件和远程服务器上的文件是否一致
# 两台机器上的两个文件 你想检查这两个文件是否相等
import hashlib      # 提供摘要算法的模块
ret = hashlib.md5()
ret.update(b'a')
print(ret.hexdigest())  # 打印结果:c81e728d9d4c2f636f067f89cc14862c

# 加盐
# 可以给 字符在摘要的时候添加新的加密方法
import hashlib
md5 = hashlib.md5(bytes('yan',encoding='utf-8')+b'1357')   # 加盐
                     #  加盐                   # 冬天太加盐
md5.update(b'chaoqi')
print(md5.hexdigest())

# 分段 摘要
# 分段摘要 读出的内容是一样的
import hashlib      # 提供摘要算法的模块
ret = hashlib.md5()
ret.update(b'cq')
ret.update(b'2020')     # ret.update(b'cq2020') 这样写 等于 分开的
print(ret.hexdigest())  # 打印结果:db7fa86804c49a05c0cdde3d0036a8a0
                        # 打印结果:db7fa86804c49a05c0cdde3d0036a8a0
                        # 分开写 和 写一起是一样的

  

# 用户登录
username = input('use:')
password = input('pwd:')
with open('q') as f:
    for i in f:
        use,pwd,tp = i.split('|')
        md5 = hashlib.md5()
        md5.update(bytes(password,encoding='utf-8'))
        md5_pwd = md5.hexdigest()
        if use == username and md5_pwd == pwd:
            print('ok')
        else:
            print('no')

  

posted @ 2018-11-06 20:12  _Q  阅读(192)  评论(0)    收藏  举报