最新要闻
- 幺妹带你慢慢耍歌词完整版_请问老师们有谁知道幺妹带你慢慢耍歌词曲谱 这首歌确实不错好听
- 拒绝录用有文身员工 老板回应被威胁:看不惯年轻人必教育到底
- 滚动:《塞尔达传说:王国之泪》掉帧严重:任天堂Switch性能不够用了
- 排面!理想L7成卢森堡大使馆官方用车:“这是中国最棒的车”_关注
- 环球今日讯!预制半成品、来“料”加工、网上销售 普陀警方捣毁一伪造、买卖身份证件黑色产业链
- 今日精选:万家基金尹诚庸离任6只基金
- iQOO首款降噪无线耳机来了:将与Neo8系列同步推出
- 悲惨的5G基站:你敢建?我就敢拆!
- 害怕失去灵魂?大众汽车:我们没使用华为车机软件|环球快讯
- 焦点热议:小黑旗舰升级13代酷睿!联想2023款ThinkPad X1 Carbon国内发布
- 世界快看点丨马斯克再度催生:再不生娃人类就要灭亡了
- 苏联题材科幻动作游戏《原子之心》Steam 史低促销
- 天天热资讯!斗罗大陆:为何唐三成为海神后,只赠予了吉祥一个神赐魂环,
- 我国本月将发射神舟十六号载人飞船:与神舟十五号乘组在轨交接-消息
- 【世界速看料】充电时 先插手机还是充电器?这几种方法都错了
- 正面挑战微软!谷歌宣布将推出AI写代码功能
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
python标准模块介绍 -Base64: Base64, Base85等数据编码|全球时讯
简介
功能:RFC 3548: Base16, Base32, Base64 数据编码。转换二进制数据为适合明文协议传输的 ASCII 序列。转换
(相关资料图)
8bits 为每个字节包含 6,5 或 4bits 的有效数据,比如 SMTP, URL 的一部分或者 HTTP POST 的一部分。参考: RFC 3548。编码算法不同于 uuencode。
类型:标准库
相关模块:uu, binhex, uu, quopri
Base64 是一种基于 64 个可打印字符来表示二进制数据的表示方法。由于 2 的 6 次方等于 64,所以每 6 个位元为一个单元,对应某个可打印字符。三个字节有 24 个位元,对应于 4 个 Base64 单元,即 3 个字节 需要用 4 个可打印字符来表示。它可用来作为电子邮件的传输编码。在 Base64 中的可打印字符包括字母 A- Z、a-z、数字 0-9,这样共有 62 个字符,此外两个可打印符号在不同的系统中而不同。之后在 6 位的前面补 两个 0,形成 8 位一个字节的形式。一些如 uuencode 的其他编码方法,和之后 binhex 的版本使用不同的 64 字符集来代表 6 个二进制数字,但是它们不叫 Base64。
Base64 常用于在通常处理文本数据的场合,表示、传输、存储一些二进制数据。包括 MIME 的email,email via MIME,在 XML 中存储复杂数据。
Python Base64 模块提供了 RFC3548 中的数据编码和解码(转换二进制数据为适合明文协议传输的ASCII 序列,如 RFC3548 中指定。该标准定义了 Base16,Base32 和 Base64 算法,编码和解码的任意二进制字符串转换为文本字符串,这样就可以通过电子邮件安全发送,作为网址的一部分,或包含在 HTTP POST 请求中。
Base64 模块提供两个接口。新式接口支持使用三个字母的编码和解码的字符串对象。传统接口提供了编码和解码文件对象和字符串,但只使用了标准的 Base64 字母。传统接口这里不做介绍。
base64、 base32、 base16 可以分别编码转化 8 位字节为 6 位、 5 位、 4 位。 16,32,64 分别表示用多少个字
符来编码。
更多 base64 的资料,参见
http://zh.wikipedia.org/wiki/Base64,http://tools.ietf.org/html/rfc822
http://tools.ietf.org/html/rfc1421
http://tools.ietf.org/html/rfc2045
快速入门
请看 python 模块介绍中的实例:
>>> import base64>>> encoded = base64.b64encode("data to be encoded")>>> encoded"ZGF0YSB0byBiZSBlbmNvZGVk">>> data = base64.b64decode(encoded)>>> data"data to be encoded"
base64.b64encode(s[, altchars]):使用 Base64 编码字符串。s 是要编码的字符串。altchars 是用来替换+和/的字符串,它们在 url 和文件系统中它们有特殊含义,通常需要替换。
base64.b64decode(s[, altchars]): 解码 Base64 编码的字符串。s 为要解码的字符串。altchars 和b64encode 相同。
• base64.standard_b64encode ( s ) : 参考 b64encode。
• base64.standard_b64decode ( s ) :参考 b64decode。
Base64 编码解码
Base64 编码解码
#!/usr/bin/env python# encoding: utf-8## Copyright (c) 2008 Doug Hellmann All rights reserved.#""""""__version__ = "$Id$"#end_pymotw_headerimport base64import textwrap# Load this source file and strip the header.with open(__file__, "rt") as input:raw = input.read()initial_data = raw.split("#end_pymotw_header")[1]encoded_data = base64.b64encode(initial_data)num_initial = len(initial_data)# There will never be more than 2 padding bytes.padding = 3 - (num_initial % 3)print "%d bytes before encoding" % num_initialprint "Expect %d padding bytes" % paddingprint "%d bytes after encoding" % len(encoded_data)printprint encoded_data
➢执行结果
$ python base64_b64encode.py168 bytes before encodingExpect 3 padding bytes224 bytes after encodingCgppbXBvcnQgYmFzZTY0CmltcG9ydCB0ZXh0d3JhcAoKIyBMb2FkIHRoaXMgc291cmNlIGZpbGUgYW5kIHN0cmlwIHRoZSBoZWFkZXIuCndpdGggb3BlbihfX2ZpbGVfXywgJ3J0JykgYXMgaW5wdXQ6CiAgICByYXcgPSBpbnB1dC5yZWFkKCkKICAgIGluaXRpYWxfZGF0YSA9IHJhdy5zcGxpdCgn
Base64 编码的 4 个字节对应实际的 3 个字节,不足四个字节时,后面部分通常用等号填充。极端的情况下, 一个字节需要用 4 个 Base64 编码来表示。
>>> import base64>>> encoded = base64.b64encode("a")>>> encoded"YQ=="
Base64 解码参见快速入门部分介绍。
URL-Safe
•base64.urlsafe_b64encode(s):
•base64.urlsafe_b64decode(s):
Base64 默认会使用+和/, 但是这 2 个字符在 url 中也有特殊含义。使用 urlsafe 可以解决这个问题。 +替换为-, /替换为_。
import base64encodes_with_pluses = chr(251) + chr(239)encodes_with_slashes = chr(255) * 2for original in [ encodes_with_pluses, encodes_with_slashes ]:print "Original:", repr(original)print "Standard encoding:", base64.standard_b64encode(original)print "URL-safe encoding:", base64.urlsafe_b64encode(original)print
➢执行结果
$ python base64_urlsafe.pyOriginal: "\xfb\xef"Standard encoding: ++8=URL-safe encoding: --8=Original: "\xff\xff"Standard encoding: //8=URL-safe encoding: __8=
其他编码
Base32 包含 26 个大写字母和 2-7 的数字。
• base64.b32encode(s):使用 Base32 编码字符串。s 是要编码的字符串。
• base64.b32decode(s[, casefold[, map01]]):解码 Base32 编码的字符串。s 为要解码的字符串 。
casefold 表示是否允许小写字母。 map01 表示允许 0 表示 0,1 表示 L 。
import base64original_string = "This is the data, in the clear."print "Original:", original_stringencoded_string = base64.b32encode(original_string)print "Encoded :", encoded_stringdecoded_string = base64.b32decode(encoded_string)print "Decoded :", decoded_string
➢执行结果
$ python base64_base32.pyOriginal: This is the data, in the clear.Encoded : KRUGS4ZANFZSA5DIMUQGIYLUMEWCA2LOEB2GQZJAMNWGKYLSFY======Decoded : This is the data, in the clear.
Base16 包含 16 个 16 进制大写数字。类似的有 base64.b16encode(s) ,base64.b16decode(s[,
casefold]) 。
import base64original_string = "This is the data, in the clear."print "Original:", original_stringencoded_string = base64.b16encode(original_string)print "Encoded :", encoded_stringdecoded_string = base64.b16decode(encoded_string)print "Decoded :", decoded_string
➢
执行结果
$ python base64_base16.pyOriginal: This is the data, in the clear.Encoded : 546869732069732074686520646174612C20696E2074686520636C6561722EDecoded : This is the data, in the clear.Python3.4 中增加了 Ascii85 和 base85 支持 。这里暂不做详细介绍。函数如下:• base64.a85encode(s, *, foldspaces=False, wrapcol=0, pad=False, adobe=False)• base64.a85decode(s, *, foldspaces=False, adobe=False, ignorechars=b" tnrv")• base64.b85encode(s, pad=False)• base64.b85decode(b)
参考资料
- 软件测试精品书籍文档下载持续更新 https://github.com/china-testing/python-testing-examples 请点赞,谢谢!
- 本文涉及的python测试开发库 谢谢点赞! https://github.com/china-testing/python_cn_resouce
- python精品书籍下载 https://github.com/china-testing/python_cn_resouce/blob/main/python_good_books.md
- python3 官方网址:https://docs.python.org/3/library/base64.html
- python 标准库 https://pymotw.com/3/base64/index.html
关键词:
-
python标准模块介绍 -Base64: Base64, Base85等数据编码|全球时讯
简介功能:RFC3548:Base16,Base32,Base64数据编码。转换二进制数据为适合明文协议传输的ASCII序列。转换8bit
来源: -
学系统集成项目管理工程师(中项)系列22b_信息化知识(中)
1 & 160;信息化1 1 & 160;产品信息化1 1 1 & 160;信息化的基础1 2 & 160;企业信息化1 2 1 & 160;国民经济信
来源: python标准模块介绍 -Base64: Base64, Base85等数据编码|全球时讯
学系统集成项目管理工程师(中项)系列22b_信息化知识(中)
express框架的基本使用 环球新资讯
幺妹带你慢慢耍歌词完整版_请问老师们有谁知道幺妹带你慢慢耍歌词曲谱 这首歌确实不错好听
拒绝录用有文身员工 老板回应被威胁:看不惯年轻人必教育到底
滚动:《塞尔达传说:王国之泪》掉帧严重:任天堂Switch性能不够用了
排面!理想L7成卢森堡大使馆官方用车:“这是中国最棒的车”_关注
环球今日讯!预制半成品、来“料”加工、网上销售 普陀警方捣毁一伪造、买卖身份证件黑色产业链
论文、专利、文献检索及图像数据工具总结 时讯
工控老曹说——TSN标准化如何赋能多领域以太网新发展
焦点讯息:2023最佳python编辑器和IDE
git 常用指令-当前聚焦
今日精选:万家基金尹诚庸离任6只基金
iQOO首款降噪无线耳机来了:将与Neo8系列同步推出
悲惨的5G基站:你敢建?我就敢拆!
害怕失去灵魂?大众汽车:我们没使用华为车机软件|环球快讯
焦点热议:小黑旗舰升级13代酷睿!联想2023款ThinkPad X1 Carbon国内发布
世界快看点丨马斯克再度催生:再不生娃人类就要灭亡了
苏联题材科幻动作游戏《原子之心》Steam 史低促销
微服务圣经1:零基础搭建一套SpringCloud微服务脚手架(SpringCloud+Dubbo+Docker+Jenkins) 环球速递
低代码开发——进最热的赛道,啃最硬的骨头-视焦点讯
Python字符串替换的3种方法-播资讯
Django SQL注入漏洞复现 (CVE-2022-28347)
每日机构分析:5月18日
天天热资讯!斗罗大陆:为何唐三成为海神后,只赠予了吉祥一个神赐魂环,
我国本月将发射神舟十六号载人飞船:与神舟十五号乘组在轨交接-消息
【世界速看料】充电时 先插手机还是充电器?这几种方法都错了
正面挑战微软!谷歌宣布将推出AI写代码功能
来了!消息称RTX 4060 Ti今晚发布:NV定8/16GB版价格 或399美元
环球今头条!小米13旗舰主摄下放!小米Civi 3关键参数曝光:IMX800加持
陈张开展“进企业促发展”人大代表履职建功主题活动 焦点精选
九头蛇的安装与使用 世界热议
焦点热门:第二章:数据模型与查询语言
P1344 [USACO4.4] 追查坏牛奶 Pollutant Control (网络流)
MySQL 迁移至 SQLite 问题记录 全球通讯
全球今日报丨【新华500】新华500指数(989001)18日下跌0.14%
当前时讯:最高检发新文:NFT法律属性定调哪般?
天天日报丨黄桃+椰果!林家铺子双色水果罐头8罐仅19.9元
天天头条:比亚迪再掀桌子!新款汉DM-i冠军版上市:18.98万起合资还怎么玩
同事都说买高像素就对了 四款热门高像素全画幅相机推荐-天天百事通
微资讯!HTC U23 Pro发布:性价比这么低的手机不多了
世界热点评!日赚4亿还嫌多?移动联通电信现在和10年前日赚一样多:手机资费下降95%等
百度投资卡车整车研发商载合汽车科技_环球快讯
环球热点![MySQL 如何分析性能]
天天速递!Python从零到壹丨图像增强的顶帽运算和底帽运算
知识拷问:工作站和服务器哪个更适合做CST电磁仿真?|每日观察
今日讯!3万多买钻戒如今只值2000元 网友称还是黄金保值:你会买钻戒吗?
60Hz显示器配120帧显卡是浪费?答案意外_世界即时看
最新资讯:包含多家中国造车新势力!马斯克预言一年内必有车厂倒闭
360 AIGC产品定名360智脑、360鸿图
三星量产12nm DDR5内存:功耗骤降23% 全球新视野
追讨欠款的有效期限是多久?欠钱不还电话不接微信不回怎么办?
ChatGPT 插件,组合后更妙了
快报:零跑汽车在杭州成立动力系统公司,注册资本1亿元
地球母亲怎么了?世界气象组织警告:未来五年全球气温将创新高-热头条
全球最新:知名女演员最新大片引争议 网友惊呼:这花有毒!
用这些C#代码混淆器保护你的代码安全_速递
环球微头条丨港元1个月拆息升至近5个月高 报4.57238厘
215英寸口袋巨幕!雷鸟Air Plus发布:首发2299元
世界快消息!男子在路边花5600元买到战国青铜剑:捐赠给博物馆
《王者荣耀》安琪拉/亚瑟520限定皮肤公布 传说品质-每日聚焦
周星驰担任网飞版《美猴王》执行制作:定档8月18日 大圣外形被吐槽|世界速讯
《权力的游戏》演员称曾被网暴到退网:就因为角色不讨喜
5月18日河北中昌化肥硫酸铵价格动态
世界最资讯丨MongoDB + SpringBoot 的基础CRUD、聚合查询
开源即时通讯IM框架MobileIMSDK的Uniapp端开发快速入门
【世界独家】TimescaleDB VS TDengine:写入性能和查询性能是 TDengine 的 1/6、1/28
世界百事通!夜莺官方文档优化第一弹:手把手教你部署和架构讲解,消灭所有部署失败的 case!干!
直播预告 | 员工在公司体验感UP,原因竟然是这个......
美国债务上限谈判出现曙光 日元价格跌破年内新低
全球热点评!小米Civi 3首发天玑8200 Ultra!小米影像大脑更强了:连拍提速235%
报告称:81%员工不认为其工作可以被AI取代-天天热点
7450MB/s!三星990 Pro旗舰SSD价格腰斩:2TB只要1229元
每日时讯!发条朋友圈就能赚钱?支付宝辟谣:“朋友圈出租”是骗局
头条:魔兽国服关了114天 暴雪选择躺平:工作室脚本泛滥 玩家遭殃
国家金融监督管理总局官方微信公众号今日上线 世界讯息
《安富莱嵌入式周报》第312期:开源磁场照相机,仿生神经元PCB,开源无线耳机,手机系统PalmOS移植到各种单片机,开放系统组装协议OSAP 环球聚看点
今日精选:第141篇:微信小程序wx.request接口报错(errno: 600001, errMsg: "request:fail -2:net::ERR_
阿里云微服务引擎 MSE 全新升级,实用能力更普惠,最高降幅 75%
焦点信息:沉默的答案!直播源码禁言技术的实现
spring框架_常见工厂后处理器 最新资讯
预售价13.98-14.98万元 北京现代MUFASA定名沐飒 全球时讯
稻香村旗舰店:稻香私房粽子4只9.9元狂促(4粽4味)|今日快讯
天天百事通!Redmi Book 14轻薄本第三大升级公布:4000元档颜值绝了
一老年代步车当街起火:爷孙两人被严重烧伤
纯白YYDS!魅族20白色款3199元起开始预约:3年质保
女生遭两闺蜜PUA长达8年被骗百万 网友提醒:警惕“贬低式关系”
2023广州李荣浩演唱会需要预约吗?
全球热资讯!HTTP1.0、HTTP1.1、HTTP2.0 协议的特点
周杰伦好像被舞伴碰瓷 周杰伦表情一脸错愕(图)_环球时讯
环球关注:亚瑟首款传说皮肤 《王者荣耀》520皮肤今晚上架:打包250元 你买吗?
白嫖7万2!岚图追光四大选装包限时免费:入门即顶配_天天最资讯
对话不再“一次性”:BingChat新增聊天内容导出功能
一景区沙下埋20厘米三角钉 越野车轮胎被扎:官方通报调查结果 全球通讯
我国今年沙尘爆发原因找到了:蒙古国贡献超40% 冷锋、气旋天气主导
劳模登讲台 思政“活”起来
恶俗婚闹哪里最多_大家都见过哪些恶俗的婚闹-环球热门
全球新动态:Take-Two暗示《GTA6》明年问世
00后裸辞旅游被批 家里有矿吗:本人回应:享受当下 拒绝加班 焦点信息
3万元钻戒如今只值2千 越来越多新人告别智商税 婚礼用十几元道具戒指