Python3 实现 AES 加解密

本文介绍了Python3中使用binascii模块进行字节与base64编码的转换,并探讨了在网络传输中base64编码的作用。接着,文章转向了pycryptodome模块,讲解了AES加密的参数,包括秘钥、明文、模式和偏移量,并指出了在Python3中处理字节和字符串的注意事项。
摘要由CSDN通过智能技术生成

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
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值