Base64 是用64个字符来表示任意二进制数据的方法。
当用记事本打开exe
、jpg
、pdf
这些文件时,会看到一大堆乱码,因为二进制文件包含很多无法显示和打印的字符,如果使用记事本处理二进制数据,就需要使用二进制到字符串的转换方法,Base64是一种最常见的二进制编码方法。
Base64编码会把3字节的二进制数据编码为4字节的文本数据,长度增加33%,好处是编码后的文本数据可以在邮件正文、网页等直接显示。
Python内置的base64
可以直接进行base64的编解码:
import base64 base64_r = base64.b64encode(b'binary\x00string') # b'YmluYXJ5AHN0cmluZw==' ori_r = base64.b64decode(b'YmluYXJ5AHN0cmluZw==') # b'binary\x00string' base64_str1 = base64.b64encode(b'I am good.') # b'SSBhbSBnb29kLg==' base64_str2 = base64.b64encode(b'am . I good') # b'YW0gLiBJIGdvb2Q='
标准Base64编码后可能出现字符+
和/
,在URL中就不能直接作为参数,此时可使用"url safe"的base64编码,就是把字符+
和/
分别变成“-”
和“_”:
base64.b64encode(b'i\xb7\x1d\xfb\xef\xff') # b'abcd++//'
base64.urlsafe_b64encode(b'i\xb7\x1d\xfb\xef\xff') # b'abcd--__'
base64.urlsafe_b64decode('abcd--__') # b'i\xb7\x1d\xfb\xef\xff'
Base64是一种通过查表的编码方法,不能用于加密,即使使用自定义的编码表也不行。
Base64适用于小段内容的编码,比如数字证书签名、Cookie的内容等。
BASE64编码解码工具:BASE64编码解码工具 - 编码转换工具 - 脚本之家在线工具
在线图片转换BASE64工具:在线图片转换BASE64工具 - 编码转换工具 - 脚本之家在线工具
参考: