python AES加密 ECB PKCS5

摘要:
ClassAesEbc16:#逐块加密。明文和密文具有相同的长度def__init__(self):self。Key=b“123qweqqwerqwer”#相同的密钥用于加密和解密,每个块的长度为自身。mode=AES mode_ECB#ECB加密模式也是默认模式。创建AES加密对象时,不能编写self。block_Size=16#16字节的每个块

class AesEbc16:  # 按块的大小, 一块一块的加密, 明文和密文长度一样
  def __init__(self):
    self.key = b"123qweqqqwerqwer"  # 加密和解密用同一个秘钥, 长度为 每块的长度
    self.mode = AES.MODE_ECB  # ECB加密模式, 也是默认的模式, 创建AES加密对象时可以不写
    self.block_size = 16  # 每块16的bytes长度,  即是PKCS5 这种方式,  和秘钥长度一致

  def plaintext(self, s_text):  # 转bytes 并 补齐为16的倍数

    b_text = str.encode(s_text)
    count = len(b_text)
    # text不是16的倍数那就补足为16的倍数
    add_count = self.block_size - (count % self.block_size)
    s_plaintext = s_text + (' ' * add_count)
    b_plaintext = str.encode(s_plaintext)
    return b_plaintext

  def encrypt(self, str_text): # 加密
    aes_cipher = AES.new(self.key, self.mode) # ECB模式无需向量iv
    b_cipher= aes_cipher.encrypt(self.plaintext(str_text))
    return b_cipher

  def decrypt(self, b_text): # 解密
    aes_cipher = AES.new(self.key, self.mode)
    b_plaintext = aes_cipher.decrypt(b_text)

    s_plaintext = bytes.decode(b_plaintext)
    return s_plaintext

免责声明:文章转载自《python AES加密 ECB PKCS5》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇写一个播放视频文件的ActiveX控件——MFC版(原创)MySQL 8.0.14版本新功能详解下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

python中常用的文件和目录操作(二)

一. os模块概述 python os模块提供了非常丰富的方法用来处理文件和目录 二. 导入os模块: import os 三. 常用方法 1. os.name 输出字符串表示正在使用的平台,如果是windows则用"nt"表示,如果是Linux/Unix,是"posix" import os print(os.name) 结果: nt...

robotframework自动化测试框架搭建及问题汇总

1.安装python RF框架是基于python 的,所以一定要有python环境,python与rf存在兼容性问题,我安装的是python3.7.5,robotframework3.1.2。 选择添加到path,或者自己手动配置环境变量,打开cmd 输入python -V可以看到安装的版本 官网https://www.python.org/下载比较慢,...

python 简单图像识别--验证码

python  简单图像识别--验证码 记录下,准备工作安装过程很是麻烦。 首先库:pytesseract,image,tesseract,PIL windows安装PIL,直接exe进行安装更方便(https://files.cnblogs.com/files/Oran9e/PILwin64.zip)(https://files.cnblogs.com/...

SciPy0.11.0(or higher)安装

  OpenMDao程序依赖scipy并且要求版本在0.11.0以上,安装起来费了一些劲。网上查的可以apt-get install python-scipy安装,但版本只到0.08.0(这里不禁要问源的维护人员搞毛去了,如果支持更高的,根本就不费一点事了)。因此按照OpenMDao官网上给出的教程下载源程序编译安装,然后输入以下几条命令,大概就是让pyt...

Python与c/c++混合编程

https://blog.csdn.net/hobertony_7/article/details/88875246?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.control&dist_request_id=&dept...

[读书笔记] Python 数据分析 (十一)经济和金融数据应用

resample: 重采样函数,可以按照时间来提高或者降低采样频率,fill_method可以使用不同的填充方式。 pandas.data_range 的freq参数枚举: Alias Description B business day frequency C custom business day frequency D calend...