import hashlib
#bytes类型,字节类型
# md5,sha256,sha512 后面代码位数,更安全一点
# base64
# aes
#rsa 接口需要加密的,对称加密,非对称加密
#md5是不可解密的,不可逆的,32位长度,下载的时候对这几个码
password="12345"
print(password.encode())
m=hashlib.md5(password.encode()) #encode转成bytes类型,将字符串转化为字节类型,,,,,字符串后面加,将字符串转化为字节类型 加密的时候必须为字节类型
print(m.hexdigest())
结果:6ae96a1f4df95ecd47ef0553e7b2fffa:同一个字符串的md5码是一样的
#加盐 就是给它加上点密码,增加密码复杂度
def md5(password):
salt="jhasdjhk"
new = password+salt #相加
m = hashlib.md5(new.encode())
return m.hexdigest() #获取密码
# 将盐加在中间
ls=list(s)
index=len(ls)//2
ls.insert(index,salt)
new_ls="".join(ls)
print(new_ls)
m=hashlib.md5(new_ls.encode())
print(m.hexdigest())
#通用函数
def md5(string,salt=""):
new = str(string) + str(salt) #只有str类型相加
m = hashlib.md5(new.encode())
return m.hexdigest() #获取密码
函数封装
def md5_pwd(s,salt=""):
s=str(s)
new_s="%s%s" %(s,salt)
m=hashlib.md5(new_s.encode())
print(m.hexdigest())
md5_pwd("123")
md5_pwd("123","123")
对文件进行加密:读取文件 以字节类型打开
with open("xpinyin-0.7.6-py3-none-any.whl","rb") as f:
m=hashlib.md5(f.read())
print(m.hexdigest())