python中可逆的加密方式

  1. 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 )  # 解码为字典
  1. 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 )  # 解密为字典
  1. 使用base64(只能对字节进行加密)
import base64, json

data = {"num":123, "app_id": None, "user_id": 23424234234}
data = json.dumps(data)  # 将字典转换为字符串
data_byte = data.encode('utf-8') # 将字符串编码为byte
base_data = base64.b64encode(data_byte)  # 加密
data_str = base_data .decode('utf-8') # 转换为字符串

data_byte = base64.b64decode(data_str)  # 解密为byte
data_str  = data_byte.decode('utf-8') # 将byte转换为str
data = json.loads(data_str) # 变为字典
  1. 这三种加密方式都是可逆的,但是同一个字典,生成的字符串长度是不同的,从上到下,生成的字符串长度越来越短
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值