python常用库之base64
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的更多相关文章
- python 常用库整理
python 常用库整理 GUI 图形界面 Tkinter: Tkinter wxPython:wxPython pyGTK:PyGTK pyQt:pyQt WEB框架 django:django w ...
- python常用库安装网址
python常用库安装网址如下: http://pypi.python.org/pypi
- windows下python常用库的安装
windows下python常用库的安装,前提安装了annaconda 的python开发环境.只要已经安装了anaconda,要安装别的库就很简单了.只要使用pip即可,正常安装好python,都会 ...
- Python常用库整理
Python常用库整理 Python中到底有哪些库会让程序员爱不释手?以至于一次上瘾,造成永久性伤害(这句话好像在哪里见过),今天我们就来整理一番这样的库,欢迎各位在评论区或者私信我添加或者修改相关库 ...
- python常用库
本文由 伯乐在线 - 艾凌风 翻译,Namco 校稿.未经许可,禁止转载!英文出处:vinta.欢迎加入翻译组. Awesome Python ,这又是一个 Awesome XXX 系列的资源整理,由 ...
- Python常用库大全
环境管理 管理 Python 版本和环境的工具 p – 非常简单的交互式 python 版本管理工具. pyenv – 简单的 Python 版本管理工具. Vex – 可以在虚拟环境中执行命令. v ...
- python常用库 - NumPy 和 sklearn入门
Numpy 和 scikit-learn 都是python常用的第三方库.numpy库可以用来存储和处理大型矩阵,并且在一定程度上弥补了python在运算效率上的不足,正是因为numpy的存在使得py ...
- Python常用库大全,看看有没有你需要的
作者:史豹链接:https://www.zhihu.com/question/20501628/answer/223340838来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...
- python常用库(转)
转自http://www.west999.com/info/html/wangluobiancheng/qita/20180729/4410114.html Python常用的库简单介绍一下 fuzz ...
随机推荐
- 【Leetcode】113Path Sum II
Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given su ...
- 使用Log4在测试过程中打印执行日志 及配置log4j.properties!
http://zengxiantao.iteye.com/blog/1881706 1.环境配置:到网上下载log4j-1.2.17.jar包!完后 添加到 项目的build path 中即可! 2. ...
- yarn add & yarn global add
yarn global add & add -D https://yarnpkg.com/zh-Hans/docs/cli/add#toc-commands $ yarn global add ...
- 第77天:jQuery事件绑定触发
一.元素操作 1. 高度和宽度 $(“div”).height(); // 高度 $(“div”).width(); // 宽度 .height()方法和.css(“height”)的区别: 返回值不 ...
- bzoj4754[JSOI2016]独特的树叶
这个题....别人写得怎么都....那么短啊? 我怎么....WA了好几次啊....怎么去loj扒了数据才调出来啊? 这个算法...怎么我还是不知道对不对啊 怎么回事啊怎么回事啊怎么回事啊? 请无视上 ...
- document.readyState的使用
document.readyState:判断文档是否加载完成.firefox不支持. 这个属性是只读的,传回值有以下的可能: 0-UNINITIALIZED:XML 对象被产生,但没有任何文件被加载. ...
- WIN7 右下角音量图标不见了
1.呼叫出 任务管理器,结束掉 explorer.exe 进程 2.新建任务,浏览,找到 C:/windows/system32/systray.exe,确定加载 3.新建任务,输入explorer ...
- Spring Boot系列教程六:日志输出配置log4j2
一.前言 spring boot支持的日志框架有,logback,Log4j2,Log4j和Java Util Logging,默认使用的是logback日志框架,笔者一直在使用log4j2,并且 ...
- sysbench - 单组件式测试工具
1 安装 > ./configure --with-mysql-includes=/usr/local/mysql/include --with-mysql-libs=/usr/local/my ...
- Yura
Portal --> broken qwq Description 给你一个长度为\(n\)的序列\(a\)和一个正整数\(k\),求满足如下条件的区间\([l,r]\)的数量:\((\s ...