python 接口加密
# -*- coding: utf-8 -*- """ @author: Mr_zhang @software: PyCharm @file: encryption.py @time: 2023/3/23 10:00 """ import json import time import base64 from Crypto.Cipher import AES from Crypto.Util.Padding import pad, unpad class AesCrypt: """ Aes加解密 """ def __init__(self): self.key = "Key!@#$%Key!@#$%" self.mode = AES.MODE_ECB self.block_size = AES.block_size self.pad = "pkcs7" self.encoding = "utf-8" def __aes_obj(self): """aes对象""" key_bytes = self.key.encode(self.encoding) return AES.new(key=key_bytes, mode=self.mode) def encrypt(self, data): """ AES加密 :param data: 原始字符串 :return: 加密字符串 """ _aes_obj = self.__aes_obj() data_bytes = json.dumps(data).encode(self.encoding) try: cipher_base64_bytes = base64.b64encode( _aes_obj.encrypt(pad(data_to_pad=data_bytes, block_size=self.block_size, style=self.pad))) return True, cipher_base64_bytes.decode(self.encoding) except Exception as e: return False, e def decrypt(self, data): """ AES解密 :param data: 待解密字符串 :return: 原始字符串 """ _aes_obj = self.__aes_obj() data_base64_bytes = data.encode(self.encoding) try: data_bytes = unpad(padded_data=_aes_obj.decrypt(base64.b64decode(data_base64_bytes)), block_size=AES.block_size, style=self.pad) return True, json.loads(data_bytes.decode(self.encoding)) except Exception as e: return False, e if __name__ == '__main__': """前后端交互,数据接口应加密""" _data = { "code": 200, "count": 1, "results": [ {"id": 1, "name": "张建平", "age": 26, "phone": 17343037825} ] } start_des_time = time.time() print("=" * 20) start_aes_time = time.time() aes_obj = AesCrypt() flag, encrypt = aes_obj.encrypt(_data) print("加密后: ", encrypt) if flag: flag, decrypt = aes_obj.decrypt(encrypt) print("解密后: ", decrypt) print(time.time() - start_aes_time) # 0.0009999275207519531
本文来自博客园,作者:一石数字欠我15w!!!,转载请注明原文链接:https://www.cnblogs.com/52-qq/p/17247521.html
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
2018-03-23 Django-celery分布式任务