千家信息网

Base64是怎么进行编码的

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要介绍了Base64是怎么进行编码的,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Python对于自定义字符表的Base64
千家信息网最后更新 2026年10月31日Base64是怎么进行编码的

这篇文章主要介绍了Base64是怎么进行编码的,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

Python对于自定义字符表的Base64编码求解

说到自定义字符表(Alphabet Table)解码Base64,我们先得知道Base64是如何进行编码操作的。接下来我们先来介绍一下Base64是怎么进行编码的。

首先我们先来引入ASCII码表:

2、一个字节是8个比特,先找到对应的ASCII码,再将其转化为8位的二进制,转化如下:

H 对应码值为72,它对应的二进制是 01001000

e对应码值为101,它对应的二进制是:01100101

l对应码值为108,它对应的二进制是:01101100

l对应码值为108,它对应的二进制是:01101100

o对应码值为111,它对应的二进制是:01101111

Base64的码值是0-63,所以用6位的二进制就可以完全表示Base64的码值(如:000000对应十进制0,111111对应的十进制为63),将上面8位一组的二进制变成6位一组的二进制,由于上面是5*8=40个二进制,不能被6整除,所以要加一组0将其变成48个二进制数(如果还是不能整除,还要继续补8个0,其实就是最小公倍数的倍数)。

原来:01001000 01100101 01101100 01101100 01101111 00000000

现在:010010 000110 010101 101100 011011 000110 111100 000000

3、然后将6位一组的二进制计算出十进制,再跟Base64的编码表做对比,再将最后补位的0变成=,即可得到Base64字符

010010 对应二进制是:18,18对应Base64字符为:S

000110 对应二进制是:6, 6对应Base64字符为:G

010101 对应二进制是:21, 21对应Base64字符为:V

101100 对应二进制是:44, 44对应Base64字符为:s

011011 对应二进制是:27, 27对应Base64字符为:b

000110 对应二进制是:6, 6对应Base64字符为:G

111100 对应二进制是:18, 18对应Base64字符为:8

000000 补位的0变成=

所以Hello对应的Base64编码就是:SGVsbG8=

而我们在上述过程中多少数字对应的多少的Base64字符,这个就是使用了Base64标准的Alphab Table,标准的Table如下:

我们在使用Python去解决自定义表的Base64编码的时候,我们该怎么去做呢?

接下来进行到我们的正题:

其实很简单,我们将自带的Base64中他的原始Table使用str中的maketrans类进行替换即可,为什么呢?

我们通过上述的编码过程可以进行分析,我们在编码的过程中只是在最后使用到了表,但是实际上表所对应的我们原始的数据信息是不变的,所以我们先对编码过的内容字符进行替换即可得到正常的Base64编码,我们在进行解码即可。

于是我们得到了如下的代码:

import base64import string str1 = "NhFpbUihxvB="string1 = "ZYXABCDEFGHIJKLMNOPQRSTUVWzyxabcdefghijklmnopqrstuvw0123456789+/"string2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"print (base64.b64decode(str1.translate(str.maketrans(string1,string2))))

上述代码是一个将表替换为:

"ZYXABCDEFGHIJKLMNOPQRSTUVWzyxabcdefghijklmnopqrstuvw0123456789+/"的代码。

我们再来看看如何进行编码

str2='BB,yyds!'.encode()print(str(base64.b64encode(str2)).translate(str.maketrans(string2,string1)))

上述就是使用替换字符表的加密编码。

感谢你能够认真阅读完这篇文章,希望小编分享的"Base64是怎么进行编码的"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

二进制 编码 字符 就是 篇文章 代码 十进制 过程 十进 原始 接下来 标准 码表 义字 先来 自定 最小 上表 价值 信息 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网属科技 互联网与科技金融数据 互联网医疗科技 融势互联网科技 互联网科技的未来发展 深圳艾佳互联网科技 亿人帮互联网科技 互联网金融监管科技 金融科技和互联网金融 玖二柒互联网科技公司待遇 北京大学互联网科技怎么样 创业天下互联网科技有限公司 重庆威客帮互联网科技 和信科技工业互联网 洛阳昕诺飞互联网科技有限公司 米聚互联网科技南京有限公司排面 黑科技 体验场景 互联网大会 每天都有哪些好的互联网科技 东风日产互联网科技公司叫什么 北京瑞云互联网科技有限公司 互联网科技工作委员会 重生之互联网科技帝国 杭州互联网科技公司 居家互联网科技有限公司 新华互联网科技校企合作 黑科技闪耀互联网之光 语蝶互联网科技有限公司 赶超互联网科技 微信多开 科技互联网的核心竞争力 科技互联网专业务虚会材料
0