- 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, 解密时先还原