第十二章:互联网-base64:用ASCII编码二进制数据-其他编码

12.4.4 其他编码
除了Base64,这个模块还提供了一些函数来处理Base85,Base32和Base16(十六进制)编码数据。

import base64

original_data = b'This is the data,in the clear.'
print('Original:',original_data)

encoded_data = base64.b32encode(original_data)
print('Ebcoded :',encoded_data)

decoded_data = base64.b32decode(encoded_data)
print('Decoded :',decoded_data)

Base32字母表包括ASCII集中的26个大写字母以及数字2到7。
运行结果:
在这里插入图片描述
Base16函数处理十六进制字母表。

import base64

original_data = b'This is the data,in the clear.'
print('Original:',original_data)

encoded_data = base64.b16encode(original_data)
print('Ebcoded :',encoded_data)

decoded_data = base64.b16decode(encoded_data)
print('Decoded :',decoded_data)

每次编码位数下降时,采用编码格式的输出就会占用更多空间。
运行结果:
在这里插入图片描述
Base85函数使用一个扩展的字母表,与Base64编码使用的字母表相比,在空间上更节省。

import base64

original_data = b'This is the data, in the clear.'
print('Original    : {} bytes {!r}'.format(
    len(original_data),original_data))

b64_data = base64.b64encode(original_data)
print('b64 Encoded : {} bytes {!r}'.format(
    len(b64_data),b64_data))

b85_data = base64.b85encode(original_data)
print('b85 Encoded : {} bytes {!r}'.format(
    len(b85_data),b85_data))

a85_data = base64.a85encode(original_data)
print('a85 Encoded : {} bytes {!r}'.format(
    len(a85_data),a85_data))

Mercurial,git和PDF文件格式中就使用了很多Base85编码和变种。Python包含两个实现,b85encode()实现了Git Mercurial中使用的版本,a85encode()实现了PDF文件中使用的Ascii85变种版本。
运行结果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值