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

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

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

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!

相关推荐

手机登录路由器界面的网址(手机登录路由器页面)

1.首先,我们打开手机,点击桌面上的设置图标。2.进入设置页面,点击“无线和网络”。3.点击“WLAN”。4.在可用WLAN列表中,连接上你家路由器的WIFI网络。5.接下来,把路由器背面翻过来,可以...

邮箱的格式qq邮箱的格式(邮箱的格式qq邮箱的格式一样吗)
邮箱的格式qq邮箱的格式(邮箱的格式qq邮箱的格式一样吗)

QQ邮箱的地址正确书写格式,前面QQ号码,后面加一个@,然后就是qq,加一个小数点,后面是com。QQ邮箱是腾讯公司2002年推出,向用户提供安全、稳定、快速、便捷电子邮件服务的邮箱产品,已为超过1亿的邮箱用户提供免费和增值邮箱服务。QQ邮...

2026-01-01 12:55 liuian

戴尔官方原版oem镜像(戴尔镜像文件在哪里)

您好戴尔电脑恢复出厂设置的方法如下:(1)、开机进入系统前,按F8,进入Windows7的高级启动选项,选择“修复计算机”。(2)、选择键盘输入方法。(3)、如果有管理员密码,需要输入;如果没有设置...

装系统的软件(装系统)

打开黑鲨装机大师,点击【一键装机】,这里选择【系统重装】黑鲨会优先检测本地环境是否符合装机条件,检测完毕后点击下一步进入了【选择系统】画面,在这里选择win1064位纯净绿色最新版,然后点击【安装此...

windows安全模式进不去(windows安全模式进不去怎么办)
windows安全模式进不去(windows安全模式进不去怎么办)

电脑安全模式进不去的原因大多数都是硬盘出现了故障或者是系统不能兼容导致的。还有一种原因就是电脑中了木马病毒,这种情况下要想办法重启进行杀毒就好了。现在将电脑进行重新启动,再看季的时候按F8这个功能键,当然不是每个牌子的电脑进入安全模式的按键...

2026-01-01 11:05 liuian

台式电脑配置查询(台式机配置查询)

查看电脑硬件配置信息方法    1、首先右键单击计算机——属性,进入电脑属性选项卡!  2、在属性选项卡里可看到基本的CPU及内存配置,更详细的配置资料点...

winpe免安装版(pe系统免安装)

在没有WinPE系统的电脑上安装WinPE,首先需要确保你的电脑有一个能正常启动的操作系统,因为所有接下来的操作都在本地操作系统下进行。然后,你需要准备一个8G或16G的U盘,用于存储WinPE系统,...

系统下载到哪个盘里(系统安装到哪个盘)

事实上你把软件装有哪里都是没有问题。我是在电脑城工作的电脑维修员,对于电脑资料的存放我们一般是这么定义的。C盘,装系统。D盘,装软件,主要装在D:/programfilesE盘,装文档,比如一些DOC...

qq账号怎么改密码(qq怎么改帐号密码)

你可以把什么软件全关了创造一个环境这个环境的要求是网络稳定然后你点击QQ的系统设置它会有一个绿色通道直接改密只要密码知道就可以改密方法一:通过游戏修改直接在游戏登录界面点...

笔记本电脑配置怎么看显卡(笔记本电脑如何查看显卡配置)

1、首先打开控制面板,win10和win7打开控制面板的方式可能不一样,右键点击我的电脑,然后点击属性。2、在弹出的属性界面中,找到左上方的控制面板主页,然后点击它打开控制面板页面。3、打开控制面板后...

迅雷ios老版本安装包(迅雷ios老版本下载)

①可能是该版本的软件已经下架了。或者说没有服务器去支持该软件版本进行运转。②可能该软件版本过低导致的一些故障问题,使得没有多少用户愿意去下载和使用。③手机系统版本不支持用户使用软件的这类版本。因此用户...

win7c盘哪些文件可以删(w7c盘里面有哪些文件是可以删除的)

windows7清理c盘隐藏文件的方法如下1、首先打开电脑,点击打开电脑桌面上的“我的电脑”。2、然后在弹出来的窗口中点击打开“本地磁盘(C)”。3、然后在弹出来的窗口中点击打开左上角组织中的“文件...

word2016是免费的吗(word2016版什么样)

对啊下载,安装输入序列号才能使用区别在于特点不同,office2016采用了高端拼接的方式呈现。整体更加时尚动感,辨识度极高,保留性能的同时也兼顾了不错的规格设计。2021稳重之中带着犀利,硬朗的线条...

如何修改路由器(如何修改路由器密码)

要修改无线路由器,您需要登录到路由器的管理界面。以下是如何进行的步骤:1.打开浏览器并输入路由器的IP地址。通常默认为192.168.1.1或192.168.0.1。如果不确定,请参考路由器的用户手...

电脑看视频卡是什么原因(电脑看视频非常卡)

网速原因,网速太慢会导致电脑看视频会卡。2、看视频的时候有其他程序在运用。3、电脑垃圾太多。4、电脑中病毒了。电脑看视频太卡怎么办:1、首先要确定是不是网速的原因,如果是网速慢,那么建议看视频选择“流...