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個字節有一個\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)
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)