base64 可以把字符串编码成base64的编码格式:(大小写字母,数字和 =)
eyJzdWIiOiAiMTIzNDU2Nzg5MCIsICJuYW1lIjogImxxeiIsICJhZG1pbiI6IHRydWV9
base64可以把base64编码的字符串,解码回原来的格式
应用场景:
jwt中使用
网络中传输字符串就可以使用base64编码
网络中传输图片,也可能使用base64的编码
编码过程
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}'
将图片保存起来
import json
import base64
d = {'name': 'lqz', 'userid': 6, 'age': 19}
info = json.dumps(d)
print(info)
# 把字符串使用base64编码
res=base64.b64encode(info.encode('utf-8'))
print(res) # eyJuYW1lIjogImxxeiIsICJ1c2VyaWQiOiA2LCAiYWdlIjogMTl9
res=base64.b64decode(s)
with open('code.png','wb') as f:
f.write(res)