百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

python散装笔记——58: base64 模块

liuian 2025-03-14 18:45 38 浏览

Parameter

Description

base64.b64encode(s, altchars=None)

s

类似字节的对象

altchars

altchars一个长度为 2+ 的类字节对象,用于在创建 Base64 字母表时替换 “+”和“=”字符。额外字符将被忽略。

base64.b64decode(s, altchars=None, validate=False)

s

类似字节的对象

altchars

长度为 2+ 的类字节对象,用于在创建 Base64 字母表时替换 “+”和“=”字符。额外字符将被忽略。

validate

如果 validate 为 True,则在进行填充检查前不会丢弃不在正常 Base64 字母表或替代字母表中的字符

base64.standard_b64encode(s)

s

类似字节的对象

base64.standard_b64decode(s)

s

类似字节的对象

base64.urlsafe_b64encode(s)

s

类似字节的对象

base64.urlsafe_b64decode(s)

s

类似字节的对象

b32encode(s)

s

类似字节的对象

b32decode(s)

s

类似字节的对象

base64.b16encode(s)

s

类似字节的对象

base64.b16decode(s)

s

类似字节的对象

base64.a85encode(b, foldspaces=False, wrapcol=0, pad=False, adobe=False)

b

类似字节的对象

foldspaces

如果 foldspacesTrue,将使用字符 y 代替 4 个连续空格。

wrapcol

换行符前的字符数(0 表示没有)

pad

如果 pad 为 True,则在编码前将字节填充为 4 的倍数

adobe

如果 adobe 为 "True",则编码序列将使用与 Adobe 产品相同的<~~>

base64.a85decode(b, foldspaces=False, adobe=False, ignorechars=b'\t\n\r\v')

b

类似字节的对象

foldspaces

如果 foldspacesTrue,将使用字符 y 代替 4 个连续空格。

adobe

如果 adobeTrue,则编码序列将使用与 Adobe 产品相同的<~~>

ignorechars

在编码过程中忽略的类似字节的字符对象

base64.b85encode(b, pad=False)

b

类似字节的对象

pad

如果 pad 为 True,则在编码前将字节填充为 4 的倍数

base64.b85decode(b)

b

类似字节的对象

base 64 编码是使用弧度 64 将二进制编码为 ASCII 字符串格式的通用方案。base64 模块是标准库的一部分,这意味着它与 Python 一起安装。了解字节和字符串对本主题至关重要,可以在此处复习。本主题将解释如何使用 base64 模块的各种功能和数基。

1: 编码和解码 Base64

要在脚本中包含 base64 模块,必须先导入该模块:

import base64

base64 编码和解码函数都需要一个 bytes-like object。要将字符串转换成字节,我们必须使用 Python 内置的编码函数对其进行编码。最常用的是 UTF-8 编码,但是这些标准编码的完整列表(包括使用不同字符的语言)可以在 Python 官方文档 链接这里 中找到。下面是将字符串编码为字节的示例:

s = "Hello World!"
b = s.encode("UTF-8")

最后一行的输出结果是

b'Hello World!'

b 前缀用于表示值是字节对象。

要对这些字节进行 Base64 编码,我们需要使用 base64.b64encode() 函数:

import base64
s = "Hello World!"
b = s.encode("UTF-8")
e = base64.b64encode(b)
print(e)

该代码的输出结果如下

b'SGVsbG8gV29ybGQh'

仍在字节对象中。要从这些字节中获取字符串,我们可以使用 Python 的 decode() 方法,并使用 UTF-8 编码:

import base64
s = "Hello World!"
b = s.encode("UTF-8")
e = base64.b64encode(b)
s1 = e.decode("UTF-8")
print(s1)

输出结果将是

SGVsbG8gV29ybGQh

如果我们想对字符串进行编码然后解码,可以使用 base64.b64decode() 方法:

import base64
# Creating a string
s = "Hello World!"
# Encoding the string into bytes
b = s.encode("UTF-8")
# Base64 Encode the bytes
e = base64.b64encode(b)
# Decoding the Base64 bytes to string
s1 = e.decode("UTF-8")
# Printing Base64 encoded string
print("Base64 Encoded:", s1)
# Encoding the Base64 encoded string into bytes
b1 = s1.encode("UTF-8")
# Decoding the Base64 bytes
d = base64.b64decode(b1)
# Decoding the bytes to string
s2 = d.decode("UTF-8")
print(s2)

如您所料,输出将是原始字符串:

Base64 Encoded: SGVsbG8gV29ybGQh
Hello World!

2: 编码和解码 Base32

base64 模块还包括 Base32 的编码和解码函数。这些函数与 Base64 函数非常相似:

import base64

# Creating a string
s = "Hello World!"
# Encoding the string into bytes
b = s.encode("UTF-8")
# Base32 Encode the bytes
e = base64.b32encode(b)
# Decoding the Base32 bytes to string
s1 = e.decode("UTF-8")
# Printing Base32 encoded string
print("Base32 Encoded:", s1)
# Encoding the Base32 encoded string into bytes
b1 = s1.encode("UTF-8")
# Decoding the Base32 bytes
d = base64.b32decode(b1)
# Decoding the bytes to string
s2 = d.decode("UTF-8")
print(s2)

这将产生以下输出结果:

Base32 Encoded: JBSWY3DPEBLW64TMMQQQ====
Hello World!

3: 编码和解码 Base16

base64 “模块还包括 ”Base16 "的编码和解码函数。Base 16 "通常被称为十六进制。这些函数与 Base64 和 Base32 函数非常相似:

import base64
# Creating a string
s = "Hello World!"
# Encoding the string into bytes
b = s.encode("UTF-8")
# Base16 Encode the bytes
e = base64.b16encode(b)
# Decoding the Base16 bytes to string
s1 = e.decode("UTF-8")
# Printing Base16 encoded string
print("Base16 Encoded:", s1)
# Encoding the Base16 encoded string into bytes
b1 = s1.encode("UTF-8")
# Decoding the Base16 bytes
d = base64.b16decode(b1)
# Decoding the bytes to string
s2 = d.decode("UTF-8")
print(s2)

输出结果如下

Base16 Encoded: 48656C6C6F20576F726C6421
Hello World!

4: 编码和解码 ASCII85

Adobe 创建了自己的编码,称为 ASCII85,与 “Base85 ”相似,但也有不同之处。Adobe PDF 文件中经常使用这种编码。这些函数已在 Python 3.4 版本中发布。否则,函数 base64.a85encode()base64.a85encode() 与前一个函数类似:

import base64
# Creating a string
s = "Hello World!"
# Encoding the string into bytes
b = s.encode("UTF-8")
# ASCII85 Encode the bytes
e = base64.a85encode(b)
# Decoding the ASCII85 bytes to string
s1 = e.decode("UTF-8")
# Printing ASCII85 encoded string
print("ASCII85 Encoded:", s1)
# Encoding the ASCII85 encoded string into bytes
b1 = s1.encode("UTF-8")
# Decoding the ASCII85 bytes
d = base64.a85decode(b1)
# Decoding the bytes to string
s2 = d.decode("UTF-8")
print(s2)

输出结果如下:

ASCII85 Encoded: 87cURD]i,"Ebo80
Hello World!

5: 编码和解码 Base85

Just like the Base64, Base32, and Base16 functions, the Base85 encoding and decoding functions are base64.b85encode() and base64.b85decode():

import base64

# Creating a string
s = "Hello World!"
# Encoding the string into bytes
b = s.encode("UTF-8")
# Base85 Encode the bytes
e = base64.b85encode(b)
# Decoding the Base85 bytes to string
s1 = e.decode("UTF-8")
# Printing Base85 encoded string
print("Base85 Encoded:", s1)
# Encoding the Base85 encoded string into bytes
b1 = s1.encode("UTF-8")
# Decoding the Base85 bytes
d = base64.b85decode(b1)
# Decoding the bytes to string
s2 = d.decode("UTF-8")
print(s2)

其输出结果如下:

Base85 Encoded: NM&qnZy;B1a%^NF
Hello World!

相关推荐

电脑打不开文档和表格怎么办

原因是电脑软件问题。根据你的描述,电脑做了注册表清理,Word文档和Excel都打不开了。原因是:文件关联被删除了。解决方法是:1,打开Word软件,然后在里面选打开找到Word文档,确认就自动打开关...

路由器的作用与功能通俗(路由器的作用与功能通俗讲解)
路由器的作用与功能通俗(路由器的作用与功能通俗讲解)

路由器的功能如下:第一,网络互连:路由器支持各种局域网和广域网接口,主要用于互连局域网和广域网,实现不同网络互相通信。第二,数据处理:提供包括分组过滤、分组转发、优先级、复用、加密、压缩和防火墙等功能。第三,网络管理:路由器提供包括路由器配...

2026-01-05 17:55 liuian

如何安装双系统win10和linux

1.首先在“我的电脑”桌面,用电脑键盘win+R键,进入运行界面,在“运行”中输入msconfig,然后点击“确定”,进入系统引导盘中。2.然后进入系统配置的界面后,点击界面上方的引导选项,进入。3....

ios用什么下载bt或磁力(ios手机用什么下载bt)

ios好用的磁力链接软件是迅雷。苹果商店下架了,可通过电脑在手机安装PP助手,手机打开PP助手,找到该软件后,从简介里找到历史版本,就可把经典的5135版本(520版本可能会闪退)下载回手机里即可。在...

好看免费的壁纸软件(好看免费的壁纸软件下载)
  • 好看免费的壁纸软件(好看免费的壁纸软件下载)
  • 好看免费的壁纸软件(好看免费的壁纸软件下载)
  • 好看免费的壁纸软件(好看免费的壁纸软件下载)
  • 好看免费的壁纸软件(好看免费的壁纸软件下载)
windows+r没反应(windows+l没反应)

原因:1、可能是键盘是没电。按下键盘左侧的大小写切换键CapsLock键,观察键盘上的指示灯Caps灯是否点亮。如能点亮,说明键盘的硬件很有可能已经损坏。如果不能点亮,则检查键盘与电脑主机连接口是否接...

一个电脑装两个显卡会怎么样

同一台主机内安装两块显卡,有两种可能:两块一模一样的、两块不一样的。  两块不一样的对电脑没有任何性能提升,唯一起的作用就是备份和双屏。可以将两台显示器分别接在这两个显卡上实现双屏输出,或者其备份作用...

为什么u盘在电脑上读不出来(为什么u盘的内容在电脑上读不出来)

U盘在电脑上读不出来可能有多种原因。以下是一些常见的问题和解决方法:U盘连接问题:首先,请确保U盘已正确连接到电脑的USB接口。尝试将U盘插入其他USB接口,或者尝试使用不同的USB线缆进行连接。驱动...

ios最新系统是多少(ios文件怎么装系统)

1.iOS13。 2.苹果手机现在的最新版本是iPhone11系列,iPhone11系列将会用上解锁更快更安全的3D结构光人脸解锁方式,搭载基于7纳米...3.iPhone11延续上一代1...

vmware虚拟机安装win10系统(vmware虚拟机如何安装系统)

原因是Win10电脑配置是不符合运行Hyper-V虚拟机的要求(主要是CPU的虚拟化支持功能),解决办法1、进入bios设置,找到No-ExecuteMemoryProtection设置将其设...

笔记本xp系统重装系统教程(笔记本做xp系统)

重装XP系统的步骤如下:1.首先备份您的重要文件和数据。2.插入XP系统安装光盘,重新启动计算机。3.在启动时按下计算机制造商指定的键(通常是F2、F12、Esc等)进入BIOS设置或启动菜单。...

文件夹加密内容以便保护数据灰色

可能是系统不支持吧。;给文件加密,我使用的是超级加密3000.;超级加密3000采用国际上成熟的加密算法和安全快速的加密方法,可以有效保障数据安全!如果文件夹属性高级属性中的加密选项是灰色的,可能是因...

系统之家u盘安装系统步骤(系统之家u盘装系统工具)

出现这种情况主要是因为U盘启动时,默认使用EFI引导启动,而不是常见的MBR引导。这种情况常常出现在原来安装32位系统、现在改装64位系统的过程中。

电脑如何解除密码(电脑如何解除密码和账户)

1/5第一种方法:在开机时,按下F8进入带命令提示符的安全"模式输入"netuser+用户名+123456/add"可把自己的密码设置为"123456",这样进入控制面板就可以清除自己用户密码了。...

云骑士装机大师是正版吗(云骑士装机大师是正版吗知乎)

云骑士装机大师靠谱。云骑士装机大师是电脑重装系统比较靠谱的软件之一,操作界面非常的简洁,让用户不用看操作教程基本能够简单几步就能成功安装好系统,云骑士装机大师还有智能检测电脑分析的功能,自动检测适合您...