Python3 实现 AES 加解密
一、binascii 模块
-
它实现字节与 base64编码的16 进制表示的ASCII之间的转化。Base64编码,64指A-Z、a-z、0-9、+和/这64个字符,基于这 64 个可打印字符来表示二进制数据的表示方法,base64 仅仅是把二进制数据按照一定的算法转化为可见的 ascii,但不要作为加密行为。
-
为什么要使用base64:用于网络传输,二进制格式的数据无法直接在网络上传输,需要把这些二进制转化为文本字符后再进行网络传输,对于二进制数据(图片,音频,视频,语音等非文本字符),我们先用 base64 编码成文本字符,然后序列化后再通过网络发送。
所以,正规的流程是首先需要先用 base64 把图片数据编码为文本字符,然后序列化,最后通过网络发送出去;另一端机器拿到这些数据,先进行反序列化,然后用 base64 进行解码还原。
1、使用于字符串和ASCII的转化b2a_hex 和 a2b_hex 需要类似字节的对象,python 中 bytes 和 str 两种类型之间的转换使用 encode()、decode() 函数。
- str通过encode()方法可以编码为指定的bytes
- 反过来,如果我们从网络或磁盘上读取了字节流,那么读到的数据就是bytes。要把bytes变为str,就需要用deco