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())