md5加密
md5是不可逆的,不能解密
不论字符串多长,生成的md5是等长的
md5
import hashlib
#import md5 #Python2里的引用
s='python321'
# s.encode()#变成bytes类型才能加密
m= hashlib.md5(s.encode())
print("md51=",m.hexdigest())
m=hashlib.sha3_224(s.encode()) #长度是224
print("md52=",m.hexdigest())
m=hashlib.sha3_256(s.encode()) #长度是256
print("md53=",m.hexdigest())
m=hashlib.sha3_512(s.encode()) #长度是512
print("md54=",m.hexdigest())
md5加盐
#如密码是123456:
s='dsfka676f9a78#$%^' #盐的值
#加盐后,密码变为: 123456dsfka676f9a78#$%^
如需加密,可调用以下函数
import hashlib
def my_md5(s,salt=''): #加盐,盐的默认值是空
s=s+salt
news=str(s).encode() #先变成bytes类型才能加密
m=hashlib.md5(news) #创建md5对象
return m.hexdigest() #获取加密后的字符串
s='123456dsfka676f9a78#$%^' #盐的值
print(my_md5(s))
Base64
import base64
s = 'python3'
#编码1
bas1 = base64.encodebytes(s.encode())
print(bas1) #每57个字节有一个
bas2 = base64.b64encode(s.encode()) # 若不想有
分隔,用b64encode
print(bas2)
#编码2
m = base64.b64encode(s.encode())
res = m.decode()
print(res)
#解码1
data = base64.b64decode(bas1)
print(data)
#解码2
b = base64.b64decode('MTUz')
res = b.decode()
print(res)
sha 系列 hex 加密
以sha1为例
data="123456789"
sha1 = hashlib.sha1(data).hexdigest()
print(sha1)
以sha256为例
def sha256hex(data):
sha256 = hashlib.sha256()
sha256.update(data.encode())
res = sha256.hexdigest()
print("sha256加密结果:", res)
return res
data = "123456789"
sha256hex(data)