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转换过程
如下图所示。
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请求失败。 如下图所示。
正确的处理应该如下。
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