1. 什么是base64

base64是一种将不可见字符转换为可见字符的编码方式。

2. 如何使用

最简单的使用方式

import base64

if __name__ == '__main__':

    s = 'plain text'

    # base64编码
t = base64.b64encode(s.encode('UTF-8'))
print(t) # base64解码
t = base64.b64decode(t)
print(t) # base32编码
t = base64.b32encode(s.encode('UTF-8'))
print(t) # base32解码
t = base64.b32decode(t)
print(t) # base16编码
t = base64.b16encode(s.encode('UTF-8'))
print(t) # base16解码
t = base64.b16decode(t)
print(t)

base64.bxxencode接受一个字节数组bytes用于加密,返回一个bytes存储加密之后的内容。

base64.bxxdecode接受一个存放着密文的bytes,返回一个bytes存放着解密后的内容。

对URL进行编码

编码之后的+和/在请求中传输的时候可能会出问题,使用urlsafe_b64encode方法会自动将:

+映射为-
/映射为_

这样加密之后的就都是在网络上传输安全的了。

import base64

if __name__ == '__main__':

    s = 'hello, world'

    t = base64.urlsafe_b64encode(s.encode('UTF-8'))
print(t) t = base64.urlsafe_b64decode(t)
print(t)

使用urlsafe_b64encode相当于是base64.b64encode(s.encode('UTF-8'), b'-_'),第二个参数指定了使用哪两个字符来替换掉+和/:

import base64

if __name__ == '__main__':

    s = 'hello, world'

    t = base64.b64encode(s.encode('UTF-8'), b'-_')
print(t) t = base64.b64decode(t, b'-_')
print(t)

直接对流进行编码

加密和解密的时候可以直接传入一个流进去,base64模块加密方法会从输入流中读取数据进行加密,同时将结果写到输出流中。

import base64
from io import BytesIO if __name__ == '__main__': input_buff = BytesIO()
output_buff = BytesIO() input_buff.write(b'hello, world')
input_buff.seek(0) base64.encode(input_buff, output_buff)
s = output_buff.getvalue()
print(s)

参考资料:

1. https://docs.python.org/3.5/library/base64.html

python常用库之base64的更多相关文章

  1. python 常用库整理

    python 常用库整理 GUI 图形界面 Tkinter: Tkinter wxPython:wxPython pyGTK:PyGTK pyQt:pyQt WEB框架 django:django w ...

  2. python常用库安装网址

    python常用库安装网址如下: http://pypi.python.org/pypi

  3. windows下python常用库的安装

    windows下python常用库的安装,前提安装了annaconda 的python开发环境.只要已经安装了anaconda,要安装别的库就很简单了.只要使用pip即可,正常安装好python,都会 ...

  4. Python常用库整理

    Python常用库整理 Python中到底有哪些库会让程序员爱不释手?以至于一次上瘾,造成永久性伤害(这句话好像在哪里见过),今天我们就来整理一番这样的库,欢迎各位在评论区或者私信我添加或者修改相关库 ...

  5. python常用库

    本文由 伯乐在线 - 艾凌风 翻译,Namco 校稿.未经许可,禁止转载!英文出处:vinta.欢迎加入翻译组. Awesome Python ,这又是一个 Awesome XXX 系列的资源整理,由 ...

  6. Python常用库大全

    环境管理 管理 Python 版本和环境的工具 p – 非常简单的交互式 python 版本管理工具. pyenv – 简单的 Python 版本管理工具. Vex – 可以在虚拟环境中执行命令. v ...

  7. python常用库 - NumPy 和 sklearn入门

    Numpy 和 scikit-learn 都是python常用的第三方库.numpy库可以用来存储和处理大型矩阵,并且在一定程度上弥补了python在运算效率上的不足,正是因为numpy的存在使得py ...

  8. Python常用库大全,看看有没有你需要的

    作者:史豹链接:https://www.zhihu.com/question/20501628/answer/223340838来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...

  9. python常用库(转)

    转自http://www.west999.com/info/html/wangluobiancheng/qita/20180729/4410114.html Python常用的库简单介绍一下 fuzz ...

随机推荐

  1. PHP qrcode 生成二维码

    <?php /* 下载地址 : https://sourceforge.net/projects/phpqrcode/ 这里下载的文件名为 phpqrcode-2010100721_1.1.4 ...

  2. Communications link failure--分析之(JDBC的多种超时情况)

    本文是针对特定的情景下的特定错误,不是所有Communications link failure错误都是这个引起的,重要的区分特点是:程序是不是在卡主后两个小时(服务器的设置)后程序才感知到,才抛出了 ...

  3. Cobbler环境搭建

    Cobbler服务器系统: CentOS 6.6 64位Cobbler版本: cobbler-2.6.11IP地址:192.168.166.136 1.安装epel库 rpm -ivh http:// ...

  4. 【php】session读写锁

    事件:a文件中操作$_SESSION['start'] = 'yes'; sleep(100);  休眠100s 在这休眠的时间段中,b文件操作$_SESSION['start'] = 'no'; 结 ...

  5. 超强汇总!110 道 Python 面试笔试题

    https://mp.weixin.qq.com/s/hDQrimihoaHSbrtjLybZLA 今天给大家分享了110道面试题,其中大部分是巩固基本python知识点,希望刚刚入手python,对 ...

  6. Kafka设计解析

    Kafka剖析(一):Kafka背景及架构介绍 Kafka设计解析(二):Kafka High Availability (上) Kafka设计解析(三):Kafka High Availabilit ...

  7. 第97天:CSS3渐变和过渡详解

    一.渐变 渐变是CSS3当中比较丰富多彩的一个特性,通过渐变我们可以实现许多炫丽的效果,有效的减少图片的使用数量,并且具有很强的适应性和可扩展性. 可分为线性渐变.径向渐变 1. 线性渐变 (grad ...

  8. 第77天:jQuery事件绑定触发

    一.元素操作 1. 高度和宽度 $(“div”).height(); // 高度 $(“div”).width(); // 宽度 .height()方法和.css(“height”)的区别: 返回值不 ...

  9. 批量后台执行fio性能测试脚本

    安装ansible工具: )直接yum install -y ansible; )然后更改配置,/etc/ansible/ansible.cfg,将里面的host_key_checking = Fal ...

  10. 【刷题】HDU 6184 Counting Stars

    Problem Description Little A is an astronomy lover, and he has found that the sky was so beautiful! ...