Python3 md5/base64/sha系列 hex 加密
原文在:https://www.cnblogs.com/gqv2009/p/12361900.html
md5加密(HASH)
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个字节有一个\n bas2 = base64.b64encode(s.encode()) # 若不想有\n分隔,用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)
或
import base64 str1 = '我' #编码 result = base64.b64encode(str1.encode()) print(result) #解码 temp = base64.b64decode(result) print(temp.decode())
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)
参考:https://www.cnblogs.com/gqv2009/p/12361900.html