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. 【BioCode】读文件夹以发现缺失文件

    代码说明: 使用单个蛋白质的txt计算PSSM生成的结果为单个的PSSM文件. 但是由于一些原因(如蛋白质序列过长),会导致一些蛋白质txt文件无法计算出pssm,为了找到这些没有计算出pssm的蛋白 ...

  2. 对象库(UI MAP)

    目的:能够使用配置文件存储被测页面上元素的定位方式和定位表达式,做到定位数据和程序的分离. 测试程序写好以后,可以方便不具备编码能力的测试人员进行自定义修改和配置 : package dataDriv ...

  3. 【APS.NET Core】- launchSettings.json

    launchSettings.json文件为一个ASP.NET Core应用保存特有的配置标准,用于应用的启动准备工作,包括环境变量,开发端口等.在launchSettings.json文件中进行配置 ...

  4. php缩略图

    /*引入文件Easyphpthumbnail.class.php 引用地址:http://www.itdaodan.com/article-detail-id-252.html */   class ...

  5. 第210天:node、nvm、npm和gulp的安装和使用详解

    一.node 1.什么是node? 它不是JS文件,也不是JS框架,而是Server side JavaScript runtime,当服务端的一个JS文件运行时,会被NODE拦截,在NODE中运行J ...

  6. P1407 [国家集训队]稳定婚姻

    题目描述 我国的离婚率连续7年上升,今年的头两季,平均每天有近5000对夫妇离婚,大城市的离婚率上升最快,有研究婚姻问题的专家认为,是与简化离婚手续有关. 25岁的姗姗和男友谈恋爱半年就结婚,结婚不到 ...

  7. 如何实现密码输入框focus状态弹出提示信息

    一.密码输入提示框样式实现 效果图如下: 源码如下: <html> <style type="text/css"> *{ padding: 0; margi ...

  8. 【BZOJ1443】游戏(二分图匹配,博弈论)

    [BZOJ1443]游戏(二分图匹配,博弈论) 题面 BZOJ 题解 很明显的二分图博弈问题. 发现每次移动一定是从一个黑点到达一个白点,或者反过来. 所以可以对于棋盘进行染色然后连边. 考虑一下必胜 ...

  9. 【loj6059】Sum

    Portal --> loj6059 Solution ​​ 看过去第一反应是..大力数位dp!然后看了一眼数据范围... ​ 但是这没有什么关系!注意到我们不需要考虑前导零了,可以直接快乐dp ...

  10. 【bzoj3672】购票

    Portal -->bzoj3672 Solution 天知道我是怎么调完的qwq调到天昏地暗系列.. ​ 不管这么多,先尝试列一个最简单的状态转移方程 用\(f[i]\)表示\(i\)点到\( ...