宝塔服务器面板,一键全能部署及管理,送你10850元礼包,点我领取

1、什么是Base64

Base64是一种基于64个可打印字符的二进制数据表示方法。 由于2^6=64,因此每6位为1个单元,对应某个可打印字符。

3字节为24位,对应4个Base64单元。 也就是说,3个字节可以用4个可打印字符表示。 Base64的可打印字符包括字符A-Z、A-Z、数字0-9,共计62个字符。 另外,两个可打印的符号因系统而异。

Base64模块实际可用的方法只有8种,分别如下。

编码,解码,编码串,解码串,b 64编码,b 64编码,URL安全_ b 64编码,URL安全_ b 64编码。

八个可以分成四组。

编码,解码组。 专门用于文件编码和解码,也可以对StringIO的数据进行编解码。 专门用于字符串编码和解码的编码字符串、解码字符串组; b 64编码、b 64编码的组。 用于字符串编码和解码,并具有替换符号字符的功能。 这是因为Base64编码字符除了字母和数字之外,还有三个字符’/=’。 但是,“=”只是为了补充编码字符数为4的整数,“”和“/”有时会被替换。 b 64编码和b 64编码提供了这些功能。 什么情况下“”和“/”需要被替换,最常见的是对url进行Base64编码时。

URL安全_ b 64编码、URL安全_ b 64编码的组。 这是用于对url进行Base64编码的,实际上也是被调用之前的函数组。

2、Base64的使用场景

Base64是一种从任意二进制编码到文本字符串的方法,常用于在URL、Cookie和网页上传输少量二进制数据,包括MIME电子邮件和XML的复杂数据。

3、base64转换过程

如下图所示。

aes在线加密(aes加密)-风君子博客

Python标准库提供了用于转换的base64模块。 为了使用以下两种方法,进行如下说明。

base64.b64encode ()对bytes类型的数据进行base64编码,并返回编码后的bytes类型

base64.b64deocde ()对base64中编码的字节类型进行解码,并返回解码的字节类型

解码的作用是将其他编码字符串转换为unicode编码

encode的作用是将unicode编码转换为另一个编码字符串

4、工作中遇到的问题

使用curl命令可以恢复正常,如下所示:

Tony @ l-l -服务器1.beta.op.tx1~$ curl ‘ http://10.7.37.933609200 /实体预配置/_ _。

{

‘计数’ : 61475690、

‘ _shards’ : {

“总的”: 5、

“成功”: 5、

‘ skipped’ : 0、

故障’ :0

}

转换为Python请求失败。 如下图所示。

aes在线加密(aes加密)-风君子博客

正确的处理应该如下。

def get_es_token () :

用户名=’ ars _ es _ rw ‘

密码=’ lohzuiu 9思科1 OE4VP ‘

token=base64.b 64编码(‘ {2} : ‘ .格式]用户名,密码) .编码) )

headers={ ‘ content-type ‘ : ‘应用程序/JSON ‘,’授权’ 3360 ‘基本’字节.编码解码器(token ) }

是打印(头)

URL=’ http://10.7.37.933609200 /实体-利润-轮廓/_计数? 帕特里克号航空母舰

response=requests.request (‘ post ‘,url,头=头) )。

print(response.text )备注:上面的截图失败的原因和下面的截图成功的原因是,使用bytes.decode方法将token bytes类型转换为str .或者

请简要说明一下什么是bytes :

bytes只是将数据以字节串的形式(二进制形式)保存,其内容(字符串、数字、图像、声音等)完全由程序的分析方式决定。 如果采用适当的字符编码方式(字符集),则可以将字节串恢复为字符串; 相反,字符串也可以转换为字节串。

以下是在网上调查的例子:

# #字节对象

B=B ‘样本’

# # str对象

s=’example ‘。

# # str到字节

sb=字节(s,编码=’ utf8 ‘ ) ) ) )。

# #字节到星星

bs=str(b,编码=’ utf8′ )

# # an备用方法

# # str到字节

SB2=STR .编码(s )

# #字节到星星

BS2=bytes .解码(b ) )。

5、小技巧

让我们看看Linux上的加密和解密字符串。

Tony @ l-l -服务器1.beta.op.tx1~$ echo ‘ ars _ es _ rw : lohzuiu9Ciqh1o E4 VP ‘|base64

yxjzx2vzx 3j3 okxvafpvavu 5q0lxadfvztrwuao=

Tony @ l-l -服务器1.beta.op.tx1~$ echo ‘ yxjzx2vzx 3j3 okxvafpvavu 5q0lxadfvztrwua==’|base64-d

ars _ es _ rw : Lohzuiu 9思科1 OE4VP

快三技巧准确率100 get_es_token () :

用户名=’ ars _ es _ rw ‘

密码=’ lohzuiu 9思科1 OE4VP ‘

token=base64.b 64编码(‘ {2} : ‘ .格式]用户名,密码) .编码) )

headers={ ‘ content-type ‘ : ‘应用程序/JSON ‘,’授权’ 3360 ‘基本’字节.编码解码器(token ) }

是打印(头)

URL=’ http://10.7.37.933609200 /实体-利润-轮廓/_计数? 帕特里克号航空母舰

response=requests.request (‘ post ‘,url,头=头) )。

print(response.text )备注:上面的截图失败的原因和下面的截图成功的原因是,使用bytes.decode方法将token bytes类型转换为str .或者

请简要说明一下什么是bytes :

bytes只是将数据以字节串的形式(二进制形式)保存,其内容(字符串、数字、图像、声音等)完全由程序的分析方式决定。 如果采用适当的字符编码方式(字符集),则可以将字节串恢复为字符串; 相反,字符串也可以转换为字节串。

以下是在网上调查的例子:

# #字节对象

B=B ‘样本’

# # str对象

s=’example ‘。

# # str到字节

sb=字节(s,编码=’ utf8 ‘ ) ) ) )。

# #字节到星星

bs=str(b,编码=’ utf8′ )

# # an备用方法

# # str到字节

SB2=STR .编码(s )

# #字节到星星

BS2=bytes .解码(b ) )。

5、小技巧

让我们看看Linux上的加密和解密字符串。

Tony @ l-l -服务器1.beta.op.tx1~$ echo ‘ ars _ es _ rw : lohzuiu9Ciqh1o E4 VP ‘|base64

yxjzx2vzx 3j3 okxvafpvavu 5q0lxadfvztrwuao=

Tony @ l-l -服务器1.beta.op.tx1~$ echo ‘ yxjzx2vzx 3j3 okxvafpvavu 5q0lxadfvztrwua==’|base64-d

ars _ es _ rw : Lohzuiu 9思科1 OE4VP