一、md5加密
md5加密是不可逆的,只能加密,不能解密,加密時只能傳二進制類型的(字符串加encode()就能變成byte類型)。
無論多長的字符串,加密出來都是32位的。
加密需導入hashlib模塊
import hashlib s='123' m=hashlib.md5(s.encode()) result=m.hexdigest()#獲取加密后的結果 print(result)
封裝一個加密函數
提高安全性的方法:加鹽。
加鹽是指在你輸入的密碼后面再加一個隨機字符串。
def md5(s,salt=''): new_s=str(s) + salt m = hashlib.md5(new_s.encode()) return m.hexdigest()
二、如何對文件加密
先打開文件,讀取文件再加密
打開文件時用rb表示用二進制打開文件,使用二進制打開,加密時不需要用encode()
f=open('PyMysql-0.7.5.py3-none.whl','rb') #rb表示用二進制打開, jg=f.read() m=hashlib.md5(jg) #使用二進制打開,加密時不需要用encode result=m.hexdigest()#獲取加密后的結果 print(result)
三、base64加密
既能加密又能解密,
一般傳輸數據時會用到,加密完都是字母或者數字。
import base64 #既能加密又能解密 s='http://www.baidu.com' b=base64.b64encode(s.encode()) #加密 result=b.decode() print(result) b=base64.b64decode('aHR0cDovL3d3dy5iYWlkdS5jb20=') #解密 print(b.decode())