Python3 學習加解密 系列 1 --Base
阿新 • • 發佈:2018-11-16
- Base 家族
結合原始碼的學習
import base64 加密 b64,b32,b16,b85 用法一致 encrypt_data = base64.b64encode(data.encode()) print(encrypt_data) #預設傳入一個引數,第二個引數altchars 位元組型的兩個任意字母,替換+/ 為了某些特定需要要 其實: base64.b64encode(bytes,b'-_') == urlsafe_b64encode(bytes) 同一樣的 base64.b64encode(bytes,b'+/') 需要還原, 還存在第三個引數 幾乎不用管, 大概意思:傳進來一個數, 有這樣一個正則 re.match(b'^[A-Za-z0-9+/]*={0,2}$', s) 判斷是否像base64 不像就 報有一個 Non-base64 digit found 的 error 解密 decode(input,output) 用來解決檔案中的base64的, 傳入兩個 二進位制檔案的控制代碼: 一般用法 : with open('file1','rb') as f: with open('file2','wb') as g : base64.decode(f,g) 結果是把 file1 中的 base64加密內容 解密到 file2 encode() 則是把 file1 中的 內容 base64加密 到 file2 遇到有特殊符號的base64: 用urlsafe_b64encode: _urlsafe_encode_translation = bytes.maketrans(b'+/', b'-_') _urlsafe_decode_translation = bytes.maketrans(b'-_', b'+/') 制定了兩個規則,加密時 把 +和/ 替換成 -_ 再base64, 解密時先還原