- django中的SessionBase
from django.contrib.sessions.backends.base import SessionBase
num = random.randint(1, 999)
session_obj = SessionBase()
data = {'num':num, 'app_id': 123456786987, 'user_id': 234242342340}
data_str = session_obj.encode(data)
data_dict = session_obj.decode(data_str )
- python的一个包itsdangerous, 需要先下载:pip3 install itsdangerous==1.1.0
from itsdangerous import JSONWebSignatureSerializer as JWSSerializer
data = {"num":num, "app_id": None, "user_id": 23424234234}
data_str = serializer.dumps(data).decode()
data_dict = serializer.loads(data_str )
- 使用base64(只能对字节进行加密)
import base64, json
data = {"num":123, "app_id": None, "user_id": 23424234234}
data = json.dumps(data)
data_byte = data.encode('utf-8')
base_data = base64.b64encode(data_byte)
data_str = base_data .decode('utf-8')
data_byte = base64.b64decode(data_str)
data_str = data_byte.decode('utf-8')
data = json.loads(data_str)
- 这三种加密方式都是可逆的,但是同一个字典,生成的字符串长度是不同的,从上到下,生成的字符串长度越来越短