1. base64是什么
base64是一种二进制到文本格式的编码方式。具体来说就是将byte
数组编码为字符串的方法,而编码出来的字符串只包含ASCII基础字符。
虽然说base64是一种编码方式,但是它并不推荐作为常规的加密算法使用,因为该算法的加解密算法已经众所周知。
**Base64真正的作用是为了解决各系统以及传输协议中二进制不兼容的问题。**比如base64的使用场景比较典型的就是电子邮件,因为电子邮件中的附件中往往有不可见的字符。
2.base64模块的使用
图解:
- 首先要引入包
import base64
- base64编码
s = "test".encode("utf-8") # 在python3中字符都是unicode编码,所以在base64编码前要先转码utf-8
=> b'test'
code = base64.b64encode(s).decode("utf-8")
=> 'dGVzdA==' # 后面的=号是什么呢
Base64编码要求把3个8位字节(38=24)转化为4个6位的字节(46=24),之后在6位的前面补两个0,形成8位一个字节的形式。 如果剩下的字符不足3个字节,则用0填充,输出字符使用’=‘,因此编码后输出的文本末尾可能会出现1或2个’='。
- base64解码
s = "test".encode("utf-8")
=> b'test'
bs64 = base64.b64encode(s)
=> b'dGVzdA=='
de_base64 = base64.b64decode(bs64) # base64解码需传入 base64格式数据,解码完成的数据是二进制的,需转码才能可视化读取
=> b'test'
de_base64.decoode("utf-8")
=> "test"
PS: 其余b16、a85等等函数,只是编码格式不同,使用方法和上面一致
具体详见https://docs.python.org/zh-cn/3/library/base64.html
Reference:
https://blog.csdn.net/qq_44159028/article/details/114669192
https://docs.python.org/zh-cn/3/library/base64.html