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

python加密解密之AES的更多相关文章

  1. python 加密解密(base64, AES)

    1. 使用base64 s1 = base64.encodestring('hello world') s2 = base64.decodestring(s1) print s1, s2 结果 1 2 ...

  2. .Net(c#)加密解密之Aes和Des

    .Net(c#)加密解密工具类: /// <summary> /// .Net加密解密帮助类 /// </summary> public class NetCryptoHelp ...

  3. C#加密解密(DES,AES,Base64,md5,SHA256,RSA,RC4)

    一:异或^简单加解密(数字类型) 1:原理: 异或用于比较两个二进制数的相应位,在执行按位"异或"运算时,如果两个二进制数的相应位都为1或者都为0,则返回0;如果两个二进制数的相应 ...

  4. MD5加密,Base64加密/解密,AES加密/解密

    1.从github上下载GTMBase64-master和AESCrypt-ObjC-master导入工程,如下图所示. 2.使用前的配置及注意事项: (1) 在build phases中的GTMBa ...

  5. DES加密解密与AES加密解密

    随着开发时间的变长,当初认为比较难的东西,现在渐渐也就变的不那么难了!特别对于一些经常很少使用的类,时间长了之后渐渐就陌生了.所以在这里写一些日后可能会用到的加密与解密. 一.AES加密算法和DES加 ...

  6. python 加密 解密 签名 验证签名 公钥 私钥 非对称加密 RSA

    加密与解密,这很重要,我们已经可以用pypcap+npcap简单嗅探到网络中的数据包了.而这个工具其实可以嗅探到更多的数据.如果我们和别人之间传输的数据被别人嗅探到,那么信息泄漏,信息被篡改,将给我们 ...

  7. python 加密解密

    1. 使用base64 s1 = base64.encodestring('hello world') s2 = base64.decodestring(s1) print s1, s2 结果 1 2 ...

  8. 加密 解密 RSA & AES & DES

    git: https://github.com/XHTeng/XHCryptorTools rsa RSA加解密中必须考虑到的密钥长度.明文长度和密文长度问题.明文长度需要小于密钥长度,而密文长度则等 ...

  9. PYTHON加密解密字符串

    依赖包安装部分 安装依赖包: pip install pycryptodome 在你的python环境中的下图红框路径中找到 crypto 将其改成 Crypto 代码部分 #!/usr/bin/en ...

  10. Windows10 VS2017 C++使用crypto++库加密解密(AES)

    参考文章: https://blog.csdn.net/tangcaijun/article/details/42110319 首先下载库: https://www.cryptopp.com/#dow ...

随机推荐

  1. 如何使用ModelBox快速提升AI应用性能?

    摘要:在开发初期开发者往往聚焦在模型的精度上,性能关注较少,但随着业务量不断增加,AI应用的性能往往成为瓶颈,此时对于没有性能优化经验的开发者来说往往需要耗费大量精力做优化性能,本文为开发者介绍一些常 ...

  2. 基于python的数学建模---最小二乘拟合

    import numpy as np import matplotlib.pyplot as plt from scipy.optimize import leastsq from matplotli ...

  3. 解决一个mysql报错

    问题描述 insert into btsync (key,title) values ('a','b'); ERROR 1064 (42000): You have an error in your ...

  4. linux系统编码修改

    1. 查看当前系统默认采用的字符集locale 2. 查看系统当前编码echo $LANG如果输出为:en_US.UTF-8     英文zh_CN.UTF-8     中文 3. 查看系统是否安装中 ...

  5. Dart语言简介

    简单介绍Dart语言 Dart是一种针对客户优化的语言,亦可在任何平台上快速开发的应用陈旭. 目标是为多平台开发提供最高效的变成语言,并为应用程序框架搭配了领会的运行时执行平台. Dart特点 Dar ...

  6. 【数据库】pgsql窗口函数,分组求sum的方式

    select distinct    quantity,    standard_cost,    sum(a.quantity*a.standard_cost) over(partition by ...

  7. JavaScript入门⑦-DOM操作大全

    JavaScript入门系列目录 JavaScript入门①-基础知识筑基 JavaScript入门②-函数(1)基础{浅出} JavaScript入门③-函数(2)原理{深入}执行上下文 JavaS ...

  8. 大数据-业务数据采集-FlinkCDC

    CDC CDC 是 Change Data Capture(变更数据获取)的简称.核心思想是,监测并捕获数据库的变动(包括数据或数据表的插入.更新以及删除等),将这些变更按发生的顺序完整记录下来,写入 ...

  9. 进击的K8S:Kubernetes基础概念

    Kubernetes简介 Kubernetes简称K8S(因为k和s中间有8个字母),是一个开源的容器集群管理平台,基于Go语言编写. 使用K8S,将简化分布式系统上的容器应用部署,使得开发人员可以专 ...

  10. 软件工程大作业——“你帮我助”软件开发v2.0

    项目简介 在疫情管控期间,很多物资由于信息不对称,不能达成资源的有效分配,尽管这样的事件已经基本不会在新冠疫情的场景中出现,但是开发出一个物品交换的公开信息平台在任何一个社区中都是有必要的,这是构建完 ...