【迁】python标准模块介绍 -Base64: Base64, Base85等数据编码

简介

功能:RFC 3548: Base16, Base32, Base64 数据编码。转换二进制数据为适合明文协议传输的 ASCII 序列。转换

8bits 为每个字节包含 6,5 或 4bits 的有效数据,比如 SMTP, URL 的一部分或者 HTTP POST 的一部分。参考: RFC 3548。编码算法不同于 uuencode。

类型:标准库

相关模块:uu, binhex, uu, quopri

Base64 是一种基于 64 个可打印字符来表示二进制数据的表示方法。由于 2 的 6 次方等于 64,所以每 6 个位元为一个单元,对应某个可打印字符。三个字节有 24 个位元,对应于 4 个 Base64 单元,即 3 个字节 需要用 4 个可打印字符来表示。它可用来作为电子邮件的传输编码。在 Base64 中的可打印字符包括字母 A- Z、a-z、数字 0-9,这样共有 62 个字符,此外两个可打印符号在不同的系统中而不同。之后在 6 位的前面补 两个 0,形成 8 位一个字节的形式。一些如 uuencode 的其他编码方法,和之后 binhex 的版本使用不同的 64 字符集来代表 6 个二进制数字,但是它们不叫 Base64。

Base64 常用于在通常处理文本数据的场合,表示、传输、存储一些二进制数据。包括 MIME 的email,email via MIME,在 XML 中存储复杂数据。

Python Base64 模块提供了 RFC3548 中的数据编码和解码(转换二进制数据为适合明文协议传输的ASCII 序列,如 RFC3548 中指定。该标准定义了 Base16,Base32 和 Base64 算法,编码和解码的任意二进制字符串转换为文本字符串,这样就可以通过电子邮件安全发送,作为网址的一部分,或包含在 HTTP POST 请求中。

Base64 模块提供两个接口。新式接口支持使用三个字母的编码和解码的字符串对象。传统接口提供了编码和解码文件对象和字符串,但只使用了标准的 Base64 字母。传统接口这里不做介绍。

base64、 base32、 base16 可以分别编码转化 8 位字节为 6 位、 5 位、 4 位。 16,32,64 分别表示用多少个字

符来编码。

更多 base64 的资料,参见

http://zh.wikipedia.org/wiki/Base64,http://tools.ietf.org/html/rfc822

http://tools.ietf.org/html/rfc1421

http://tools.ietf.org/html/rfc2045

快速入门

请看 python 模块介绍中的实例:


>>> import base64

>>> encoded = base64.b64encode('data to be encoded')

>>> encoded

'ZGF0YSB0byBiZSBlbmNvZGVk'

>>> data = base64.b64decode(encoded)

>>> data

'data to be encoded'

完整内容参见 python标准模块介绍 -Base64: Base64, Base85等数据编码 - 磁石空杯 - 博客园 (cnblogs.com)

参考资料

  • 本文涉及的python中文资源 请在github上点赞,谢谢!
  • python3 官方网址:https://docs.python.org/3/library/base64.html
  • python 标准库 https://pymotw.com/3/base64/index.html

你可能感兴趣的:(【迁】python标准模块介绍 -Base64: Base64, Base85等数据编码)