模块三hashlib模块

# 加密模块 摘要算法 一堆加密算法的集合体
import hashlib
# 给密码加密。
# 文件的校验。

# hashlib: 将str类型 通过算法 -----> 一串等长度的数字。
# 1,不同的字符串 转化成数字肯定不同。
# 2,相同的字符串即使在不同的计算机上只要使用相同的加密方式 转化成的数字一定相同。
# 3,hashlib加密不可逆,不能破解。

import hashlib
# md5 加密
# ret = hashlib.md5()
# ret.update('好123'.encode('utf-8'))  # 51cb75f82eceb17b86f019e01618d75e
# print(ret.hexdigest())
#
# ret = hashlib.md5()
# ret.update('fdsjfklasdfsdaflsdfjsldfjsdfsdjfdfdsffdsjfsldfdf'.encode('utf-8'))  # 51cb75f82eceb17b86f019e01618d75e
# print(ret.hexdigest())
#
# ret = hashlib.md5()
# ret.update('1'.encode('utf-8'))  # 51cb75f82eceb17b86f019e01618d75e
# print(ret.hexdigest())
#
# # 经常设置的 111111 000000 123456 19890425 13582250000  password 等等,做了一个对应表,一一对去寻找
# ret = hashlib.md5()
# ret.update('123456'.encode('utf-8'))  # e10adc3949ba59abbe56e057f20f883e
# print(ret.hexdigest())


# 加盐
# 让你的密码更复杂。
# ret = hashlib.md5('老男孩教育'.encode('utf-8'))
# ret.update('123456'.encode('utf-8'))  # b08404ec951d75b6da37fdd1bfb8c1e9
# print(ret.hexdigest())

# 动态的盐
# username = input('请输入用户名:')
# ret = hashlib.md5(username[::2].encode('utf-8'))
# ret.update('123456'.encode('utf-8'))  # 765b4e7ed31b8aa07755d1c24c69d48c
# print(ret.hexdigest())

# md5 加密效率快,通用,安全性相对差
# sha系列,算法更好 安全性高,效率低,耗时长

import hashlib
# ret = hashlib.sha1()
# ret.update('gjfds;gfjdgfkdg;lfdkg;fdlgk;fldgk;fldg'.encode('utf-8'))
# print(ret.hexdigest())
#
#
# ret = hashlib.sha512()
# ret.update('gjfds;gfjdgfkdg;lfdkg;fdlgk;fldgk;fldg'.encode('utf-8'))
# print(ret.hexdigest())


# 文件校验。

# 文件较小用下面代码。
# def check_md5(file):
#     ret = hashlib.md5()
#     with open(file,mode='rb') as f1:
#         ret.update(f1.read())
#         return ret.hexdigest()
# print(check_md5('文件校验1'))
# print(check_md5('文件校验2'))

# ret = hashlib.md5()
# ret.update('老男孩教育是最好的培训学校'.encode('utf-8'))
# print(ret.hexdigest())  # b549bba39c1e6fd58865b2ba61a3bdff

# ret = hashlib.md5()
# ret.update('老男孩教育'.encode('utf-8'))
# ret.update('是最好的'.encode('utf-8'))
# ret.update('培训'.encode('utf-8'))
# ret.update('学校'.encode('utf-8'))
# print(ret.hexdigest())  # b549bba39c1e6fd58865b2ba61a3bdff

# 大文件的校验:
def check_md5(file):
    ret = hashlib.md5()
    with open(file,mode='rb') as f1:
        while 1:
            content = f1.read(1024)
            if content:
                ret.update(content)
            else:
                break
        return ret.hexdigest()

print(check_md5('文件校验1'))
print(check_md5('文件校验2')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值