python加密解密之AES
2024-10-21 05:54:56
def encrypt(self, params: str, key: str, iv: str) -> str:
"""加密"""
generator = AES.new(key.encode("utf8"),
AES.MODE_CBC, iv.encode("utf8"))
bs = AES.block_size
pad = lambda s: s + (self.bs - len(s) %
self.bs) * chr(self.bs - len(s) % self.bs)
data = bytes(pad(params), encoding="utf8")
crypt = generator.encrypt(data)
crypted_str = base64.b64encode(crypt)
return crypted_str.decode()
def decrypt(self, params: str, key: str, iv: str) -> dict:
"""解密"""
decode = base64.b64decode(params)
cryptor = AES.new(key.encode("utf8"),
AES.MODE_CBC, iv.encode("utf8"))
plain_text = cryptor.decrypt(decode)
unpad = lambda s: s[0:-ord(s[-1:])]
return unpad(plain_text)
pip install pycryptodome
最新文章
- 在AndroidStudio不能找到so文件问题:couldn't find libweibosdkcore.so
- 【HDU2196 Computer】经典树形dp
- File类的createNewFile()与createTempFile()的区别
- [原]Wpf应用Path路径绘制圆弧
- 嵌入式开发应该掌握的一些Linux命令
- Python之倒序访问list
- tyvj P1075 - 硬币游戏 博弈DP
- UVa - The 3n + 1 problem 解读
- 洛谷U4727 小L 的二叉树
- spring boot / cloud (十九) 并发消费消息,如何保证入库的数据是最新的?
- 微信小程序个人心得
- 15分钟理解HTTPS——通俗篇
- 并查集---java模板
- Ubuntu16.04更新记
- spring事务传播实现源码分析
- 【JEECG技术文档】JEECG 组织机构导入V3.7
- hadoop学习笔记(三):hadoop文件结构
- HDU 3695 Computer Virus on Planet Pandora (AC自己主动机)
- 将 sublime test3 添加到鼠标右键的方法
- JavaScript深拷贝—我遇到的应用场景
热门文章
- 一个基于角色的访问控制(RBAC)的简单示例
- 图学习【参考资料2】-知识补充与node2vec代码注解
- nacos集群搭建和反向代理
- nginx的域名重写和转发案例
- 靶机练习: Hacker_Kid-v1.0.1
- i春秋Musee de X
- psutil.AccessDenied: psutil.AccessDenied
- HCIE Routing&;Switching之MPLS LDP理论
- 论文解读(CDTrans)《CDTrans: Cross-domain Transformer for Unsupervised Domain Adaptation》
- Windows Terminal ssh 远程 Linux 和使用 Git