python:加密模块

加密:import hashlib

# import md5  #python2 中可以直接引入md5,3中没有
#md5
#md5加密是不可逆的,即不能解密。
#只要用MD5加密,结果都是一样的,不区分语言
#MD5加密的长度是固定的

pwd='12345'      #字符串不能直接加密,必须是二进制类型
# print(pwd.encode())  #转为bytes类型
m=hashlib.md5(pwd.encode())
print(m.hexdigest())    #必须用hexdigest()打印

#判断文件下载是否完整:
#下载前,网站把文件加密,下载后,再把下载后文件转为密文,校验下载前后的密文一致 ,即下载完整
#对文件sha265加密:
f=open(r'C:\Users\94596\Downloads\PyMySQL-0.9.3-py2.py3-none-any.whl','rb')   #读二进制文件用rb模式
#网站中给出的加密值:3943fbbbc1e902f41daf7f9165519f140c4451c179380677e6a848587042561a
content=f.read()
sha=hashlib.sha256(content)
print(sha.hexdigest())
#如果下载后的文件,加密后密文跟网站上给出的密文一致,即下载完全
加盐:
def my_md5(content,salt='@36jhjs!!*&'):
    #在输入的密码后加一个随机的字符串,即加盐,加盐后的密文跟原密码的密文已经不同。
    #用户在登录时,也要在密码后加盐,跟原来加的盐应该时一样的
    s=str(content)+salt
    s=str(content).encode()   #转成byts
    m=hashlib.md5(5)
    return m.hexdigest()

 

posted @ 2019-06-25 11:53  4jd121de2gf4e2sa5d  阅读(197)  评论(0编辑  收藏  举报