hashlib模块 加密的模块
import hashlib # 这个加密的过程是无法解密的
md = hashlib.sha3_256() # 生成一个帮你造密文的对象
# md.update('hello'.encode('utf-8')) # 往对象里传明文数据 update只能接受bytes类型的数据
md.update(b'Jason_@.') # 往对象里传明文数据 update只能接受bytes类型的数据
print(md.hexdigest()) # 获取明文数据对应的密文
撞库
"""
1.不用的算法 使用方法是相同的
密文的长度越长 内部对应的算法越复杂
但是
1.时间消耗越长
2.占用空间更大
通常情况下使用md5算法 就可以足够了
"""
import hashlib
# 传入的内容 可以分多次传入 只要传入的内容相同 那么生成的密文肯定相同
md = hashlib.md5()
md.update(b'areyouok?')
md.update(b'are')
md.update(b'you')
md.update(b'ok?')
print(md.hexdigest()) # 408ac8c66b1e988ee8e2862edea06cc7
408ac8c66b1e988ee8e2862edea06cc7
"""
hashlib模块应用场景
1.密码的密文存储
2.校验文件内容是否一致
"""
加盐处理
import hashlib
md = hashlib.md5()
# 公司自己在每一个需要加密的数据之前 先手动添加一些内容
md.update(b'oldboy.com') # 加盐处理
md.update(b'hello') # 真正的内容
print(md.hexdigest())
动态加盐
import hashlib
def get_md5(data):
md = hashlib.md5()
md.update('加盐'.encode('utf-8'))
md.update(data.encode('utf-8'))
return md.hexdigest()
password = input('password>>>:')
res = get_md5(password)
print(res)