base64模块

base64编码和解码

base64 可以把字符串编码成base64的编码格式:(大小写字母,数字和 =/)

eyJzdWIiOiAiMTIzNDU2Nzg5MCIsICJuYW1lIjogImxxeiIsICJhZG1pbiI6IHRydWV9

base64可以把base64编码的字符串,解码回原来的格式

应用场景:

jwt中使用
网络中传输字符串就可以使用base64编码
网络中传输图片,也可能使用base64的编码

为啥要使用base64

"""
1.可以转换成可打印的字符:
base64编码可以将任何数据转换成一组ascii字符的文本,使得二进制数据可以通过文本的方式安全的在网络上进行传输,因为早期系统只能处理ascii字符;
2.简化传输
有些系统可能不支持二进制数据进行直接传输,或者在传输过程中很可能会出现数据损坏的风险,使用base64编码转换成ascii码进行传输,可以有效减少这方面的风险
3.安全性,防篡改
"""

编码过程

import json
import base64

d = {'name': 'zxr', 'userid': 1, 'age': 18}
info = json.dumps(d)
# print(info)  # {"name": "zxr", "userid": 1, "age": 18}

# 把字符串转成bytes格式的俩种方式
# 第一种:info.encode('utf-8')
# res = base64.b64encode(info.encode('utf-8'))
# print(res)  # b'eyJuYW1lIjogInp4ciIsICJ1c2VyaWQiOiAxLCAiYWdlIjogMTh9'

# 第二种:强转
print(bytes(info, encoding='utf-8'))  # b'{"name": "zxr", "userid": 1, "age": 18}'

解码过程

import json
import base64

d = {'name': 'zxr', 'userid': 1, 'age': 18}
info = json.dumps(d)
b'eyJuYW1lIjogInp4ciIsICJ1c2VyaWQiOiAxLCAiYWdlIjogMTh9'

res = base64.b64decode('eyJuYW1lIjogInp4ciIsICJ1c2VyaWQiOiAxLCAiYWdlIjogMTh9')
print(res)  # b'{"name": "zxr", "userid": 1, "age": 18}'
posted @ 2022-10-28 10:17  等日落  阅读(421)  评论(0编辑  收藏  举报