本文介绍Python 2.7中的base64模块,该模块提供了基于rfc3548的Base16, 32, 64编解码的接口。官方文档,参考这里。

  该模块提供两套接口,传统接口基于rfc1521的Base64,当前接口基于rfc3548的Base16/32/64编码规范,本文只介绍当前的接口。

  当前接口在Python 2.4中就被引进,关于Base64编码格式提供了以下六种接口,便于高效灵活地实现需要的编解码工作。

1. b64encode(s, altchars=None)
2. b64decode(s, altchars=None)
3. standard_b64encode(s)
4. standard_b64decode(s)
5. urlsafe_b64encode(s)
6. urlsafe_b64decode(s)

  其中以"*encode"结尾的方法用于将二进制串转为base64编码格式的字符串,以“*decode”结尾的方法用于将base64格式的字符串重新转为二进制串。

  我们详细查看前两个方法,注意到b64encode()和b64decode()接收同样形式的参数。其中 s 是要编/解码的字符串;默认参数altchars的可选值必须是长度至少两字节的字符串(第二个字符后的内容将被忽略),该方法表示在编/解码过程中将使用参数altchars中的前两个字符替换标准Base64字符集中的'+'和'/'。

  因此方法3和4中的base64.standard_b64encode(s)和base64.standard_b64decode(s)等价于base64.b64encode(s)和base64.b64decode(s)。而方法5和6中的base64.urlsafe_b64encode(s)和base64.urlsafe_b64decode(s)分别等价于base64.b64encode(s , '-_')和base64.b64decode(s , '-_'),即在编/解码过程中使用'-'和'_'替代标准Base64字符集中的'+'和'/',生成可以在URL中使用的Base64格式文本。

  使用示例:

 1 >>> import base64
 2 >>> print base64.b64encode('Hello, I am Darren!')
 3 SGVsbG8sIEkgYW0gRGFycmVuIQ==
 4 >>>
 5 >>> print base64.b64decode('SGVsbG8sIEkgYW0gRGFycmVuIQ==')6 Hello, I am Darren!
 7 >>>
 8 >>> print base64.b64encode('i\xb7\x1d\xfb\xef\xff')
 9 abcd++//
10 >>>
11 >>> print base64.b64encode('i\xb7\x1d\xfb\xef\xff', '-_')
12 abcd--__
13 >>>
14 >>> print base64.urlsafe_b64encode('i\xb7\x1d\xfb\xef\xff')
15 abcd--__
16 >>>
17 >>> base64.urlsafe_b64decode('adcd--__')
18 'i\xb7\x1d\xfb\xef\xff'

  本模块还提供了Base32和Base16编解码接口:  

1. b32encode(s)    
2. b32decode(s, casefold=False, map01=None)  

  Base16编解码:

1. b16encode(s)
2. b16decode(s, casefold=False)

  其中参数s都是要编/解码的字符串,关于Base16/32编码规范,请参考rfc4648或rfc3548,本文只关注Base64。

Python中的base64模块相关推荐

  1. python 文件流转base64_详解Python中使用base64模块来处理base64编码的方法

    base64模块是用来作base64编码解码的.这种编码方式在电子邮件中是很常见的. 它可以把不能作为文本显示的二进制数据编码为可显示的文本信息.编码后的文本大小会增大1/3. 闲话不说了,base6 ...

  2. 介绍Python中的__future__模块

    这篇文章主要介绍了介绍Python中的__future__模块,__future__模块使得在Python2.x的版本下能够兼容更多的Python3.x的特性,需要的朋友可以参考下 Python的每个 ...

  3. python中的logging记录日志_[ Python入门教程 ] Python中日志记录模块logging使用实例...

    python中的logging模块用于记录日志.用户可以根据程序实现需要自定义日志输出位置.日志级别以及日志格式. 将日志内容输出到屏幕 一个最简单的logging模块使用样例,直接打印显示日志内容到 ...

  4. python使用教程cmd啥意思-Python 中的cmd模块学习

    Python中的cmd模块类型提供了一个创建命令行解析器的框架.简单的来说,可以继承Cmd来创建命令行界面,然后对所有想处理的命令command执行do_command方法.默认情况下,它使用read ...

  5. python中的绘图模块turtle的使用

    python中的绘图模块turtle的使用(7-20190125) 文章目录: 还是从一个有趣的小应用开始,turtle的骚操作吧 最近小猪配齐比较流行,下面用turtle绘制一个粉红色的小猪猪吧-- ...

  6. linux系统python截图不显示中文_Linux运维知识之解决linux系统下python中的matplotlib模块内的pyplot输出图片不能显示中文的问题...

    本文主要向大家介绍了Linux运维知识之解决linux系统下python中的matplotlib模块内的pyplot输出图片不能显示中文的问题,通过具体的内容向大家展现,希望对大家学习Linux运维知 ...

  7. Python中的random模块

    Python中的random模块用于随机数生成,对几个random模块中的函数进行简单介绍.如下: random.random() 用于生成一个0到1的随机浮点数.如: import random r ...

  8. python中的log模块笔记

    日志相关概念 logging模块简介 使用logging提供的模块级别的函数记录日志 logging模块日志流处理流程 使用logging四大组件记录日志 配置logging的几种方式 向日志输出中添 ...

  9. python中的系统模块_python中一些获取系统信息的模块

    1.platform模块 python中,platform模块给我们提供了很多方法去获取操作系统的信息 如: import platform platform.platform() #获取操作系统名称 ...

  10. 深入理解python中的select模块

    简介 Python中的select模块专注于I/O多路复用,提供了select poll epoll三个方法(其中后两个在Linux中可用,windows仅支持select),另外也提供了kqueue ...

最新文章

  1. mantis在windows下的安装
  2. 微信支付条码支付上线啦
  3. UWP使用AppService向另一个UWP客户端应用程序提供服务
  4. 利用localStorage本地储存js文件
  5. 使用TargetSources
  6. 服务器显示禁止设置多个ip地址,服务器禁止设置多个ip解决办法
  7. 科技范足 多家上市川企获省科技进步奖
  8. Gstreamer应用g_signal_new/g_signal_connect/g_signal_emit总结(十二)
  9. opencv特效编辑之雕刻效果
  10. 怎样高效地管理自己阅读过的文献资料?
  11. 【完整matlab程序】【预测程序】狼群优化算法及BP神经网络
  12. excel表格修改时间/时间加减
  13. 微信公众平台模拟登陆和发送消息详解
  14. 卷积神经网络 图像识别,卷积神经网络 图像处理
  15. 半小时实现Java手撸Http协议,爽!!(附完整源码,建议收藏)
  16. 节假日配置、工作日配置
  17. CISCO DHCP配置全程详解
  18. Siemens PLC S7-1500 AES 加,解密算法
  19. android 进程保活6.0_Android 保活从入门到放弃:乖乖引导用户加白名单吧(附7大机型加白示例)...
  20. 网络四层、七层负载均衡的区别

热门文章

  1. paip.2013年技术趋势以及热点 v3.0 cao
  2. 1. paip.discuz X2.5 积分(金钱)功能API总结
  3. Rust:trait中 关联类型、泛型参数、默认参数混用
  4. 解密游走于法律边缘的爬虫技术
  5. 问一个 TCP 连接可以发多少个 HTTP 请求?
  6. 加密对冲基金究竟靠谱吗?全球第一份行业报告揭开秘密
  7. (转)Atom安装插件被墙,解决方案:给apm设置中国国内镜像
  8. 【回归预测】基于matlab麻雀搜索算法优化CNN回归预测【含Matlab源码 282期】
  9. 【语音识别】基于matlab DWT算法0~9数字语音识别【含Matlab源码 1726期】
  10. 【回归预测】基于matlab布谷鸟算法优化BP神经网络回归预测(多输入单输出)【含Matlab源码 1555期】