hashlib 模块 

""
hash lib
hash是一种算法 是将一个任意长的数据 根据计算 得到一个固定长度特征码
特征: 不同输入 可能会有相同的结果 几率特别小
相同的输入 必然得到相同结果
由于散列(特征)的性质 从原理来看是不可能 反解

用来 验证 两个输入的数据是否一致
使用场景
1.密码验证
123321 jahsajshajhsjahjas

client 加密后结果 server 拿到加密后

2.验证数据是否被篡改 比如游戏安装包 有没有被改过


为了防止别人撞库成功 可用提升密码的复杂度 其次可以为密码加盐 (加点内容进去)
"""


import hashlib

m = hashlib.md5("aaa".encode("utf-8"))
print(len(m.hexdigest()))

# 撞库破解的原理 有人事先 把常见的 明文和密文的对应关系 存到了数据库中
# 运气好就能查询到
pwds = {"aaa":"47bce5c74f589f4867dbd57e9ca9f808"}


h1 = hashlib.sha512("123".encode("utf-8"))
h2 = hashlib.sha3_512("123".encode("utf-8"))

# print(len(h.hexdigest()))
print(h1.hexdigest())
print(h2.hexdigest())

# 2b70683ef3fa64572aa50775acc84855

# 加盐
m = hashlib.md5("321".encode("utf-8"))
#加
m.update("abcdefplkjoujhh".encode("utf-8"))

print(m.hexdigest())

import hmac
# 没啥区别 只是在创建的时候必须加盐
h = hmac.new("abcdefjjjj".encode("utf-8"))

h.update("123".encode("utf-8"))

print(h.hexdigest())

 

posted on 2018-10-18 13:33  frank007  阅读(104)  评论(0编辑  收藏  举报