ValueError:在 ECB 模式下数据必须与块边界对齐

2024-07-04

我正在使用以下代码在 ECB 模式下尝试 aes 128 加密。

from Crypto.Cipher import AES
key = 'abcdefghijklmnop'
cipher = AES.new(key.encode('utf8'), AES.MODE_ECB)
msg = cipher.encrypt(b'hello')
print(msg.hex())
decipher = AES.new(key.encode('utf8'), AES.MODE_ECB)
msg_dec = decipher.decrypt(msg)
print(msg_dec)

但我收到“ValueError:数据必须与 ECB 模式下的块边界对齐”。如果字符串是 16 的倍数,它就可以正常工作。我不知道如何进行填充、取消填充。我们该如何解决这个问题?请帮忙


For padding and un-padding,您可以使用内置函数Crypto库,下面是您问题的有效解决方案。

from Crypto.Util.Padding import pad, unpad
from Crypto.Cipher import AES
BLOCK_SIZE = 32 # Bytes

key = 'abcdefghijklmnop'
cipher = AES.new(key.encode('utf8'), AES.MODE_ECB)
msg = cipher.encrypt(pad(b'hello', BLOCK_SIZE))
print(msg.hex())
decipher = AES.new(key.encode('utf8'), AES.MODE_ECB)
msg_dec = decipher.decrypt(msg)
print(unpad(msg_dec, BLOCK_SIZE))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ValueError:在 ECB 模式下数据必须与块边界对齐 的相关文章

  • 重复 for 循环的迭代

    如果出于某种原因我想重复相同的迭代 我该如何在 python 中做到这一点 for eachId in listOfIds assume here that eachId conatins 10 response makeRequest e
  • 如何使用ast.NodeVisitor的简单示例?

    有谁有一个使用 ast NodeVisitor 来遍历 Python 2 6 中的抽象语法树的简单示例吗 我不清楚访问和 generic visit 之间的区别 而且我找不到任何使用谷歌代码搜索或普通谷歌的示例 ast visit 当然 除
  • 导入文本文件:没有要从文件中解析的列

    我正在尝试从 sys stdin 获取输入 这是hadoop 的map reducer 程序 输入文件为txt格式 数据集预览 196 242 3 881250949 186 302 3 891717742 22 377 1 8788871
  • 是否可以在所有平台上确定性地从 jpeg 文件中读取像素?

    我遇到一个问题 我发现 JPEG 图像中的像素可能会略有不同 具体取决于我用来读取它们的计算机 我主要是一名Python程序员 我更喜欢使用opencv来读取我的图像 但我不反对使用PIL做一些事情或用C读取图像 根据这篇文章JPEG 图像
  • Flask:如何从模板目录下提供静态文件?

    我使用 Flask 并想要更改我的资产文件夹目录 这是我的文件夹结构 python static js img font css templates default css js img venv app py 我想移动静态文件夹下的所有文
  • Kivy:如何在树视图中使用 on_key_down 和 on_key_up 键盘事件?

    我在用python 2 7 and kivy 1 10 0 当我点击nameTextInput 然后树视图显示 我希望选择标签up and down键 并且当enter按下键 文本被复制 所选文本被复制到初始表单 就像您单击该项目时当前完成
  • Django - 旋转图像并保存

    我想在 django 中为图像添加 向左旋转 和 向右旋转 按钮 这似乎很容易 但我浪费了一些时间 尝试了在 stackoverflow 上找到的一些解决方案 但还没有结果 我的模型有一个 FileField class MyModel m
  • 使用 Python 在 Yandex Images 中反向搜索图像

    我对自动化反向图像搜索感兴趣 Yandex 特别适合捕捞鲶鱼 甚至比 Google 图片还要好 因此 请考虑以下 Python 代码 import requests import webbrowser try filePath C path
  • 了解 Python 2.7 中 io.open() 方法的缓冲参数

    我试图理解的缓冲参数io open https docs python org 2 library functions html openPython 2 7 中的方法 我在Python解释器中执行 import utils buffer
  • 获取pygame中图像各个像素的颜色

    如何获取传输到 pygame 表面的图像像素的颜色值 使用 Surface get at 仅返回表面层的颜色 而不返回其上位图传输的图像 方法surface get at很好 下面的示例显示了在没有 Alpha 通道的情况下位图传输图像时的
  • Pandas:处理测试中看不见的数据

    我有一个训练数据集 正在构建一些机器学习模型 我无权访问测试集 并且想要处理在训练中未观察到测试中的分类特征之一的可能性 这是一个玩具示例 说明了我的意思 我有一个数据框 old 像这样 old pd DataFrame car Audi
  • 嵌入式Python,导入数学错误

    首先我使用的是 Mac OSX 10 12 6 我想在我的 C 应用程序中嵌入 python 环境 我把 github python 项目放在https github com python cpython https github com
  • 将分层(树状)XML 读入 pandas 数据帧,保留层次结构

    我有一个 XML 文档 其中包含分层的树状结构 请参阅下面的示例 该文档包含几个
  • BeautifulSoup 3.1 解析器太容易崩溃

    我在使用 BeautifulSoup 解析一些不可靠的 HTML 时遇到了麻烦 事实证明 新版本中使用的 HTMLParser 的容忍度低于以前使用的 SGMLParser BeautifulSoup 有某种调试模式吗 我正在尝试找出如何阻
  • 使用 python 将数据复制到 Vertica

    I use python and vertica python图书馆到COPY数据到Vertica DB connection vertica python connect conn info vsql cur connection cur
  • id 是 python 中的关键字吗?

    我的编辑器 TextMate 显示id使用与我常用的变量名称不同的颜色 当用作变量名称时 是关键字吗 我不想遮蔽任何关键字 id不是一个keyword在Python中 但它是一个的名字内置功能 http docs python org li
  • 数据集继续使用线性回归而不是决策树模型

    我想在我的数据集上使用决策树模型 但无论我做什么 它都会继续使用线性回归 数据不同 但图表仍然相同 基本上 我编写了线性回归的代码 from sklearn linear model import LinearRegression linr
  • 如何在 setup.py 中运行 Makefile?

    我需要编译ICU http icu project org使用它自己的构建机制 因此问题是 我怎样才能运行一个Makefilesetup py 显然 我只希望它在构建过程中运行 而不是在安装时运行 我通常使用的方法是覆盖有问题的命令 fro
  • Django 会话竞争条件?

    摘要 Django 会话中是否存在竞争条件 如何防止它 我在 Django 会话方面遇到了一个有趣的问题 我认为该问题涉及由于同一用户同时发出请求而导致的竞争条件 它发生在一个同时上传多个文件的脚本中 正在本地主机上进行测试 我认为这使得同
  • 来自 Abaqus/CAE 的 Python 多处理

    I am using a commercial application called Abaqus CAE1 with a built in Python 2 6 interpreter and API I ve developed a l

随机推荐

  • 如何计算具有一定性质的大A和B之间的整数?

    在编程竞赛中 很多任务都会出现以下模式 给定巨大的数字 A 和 B 可能是 20 位十进制数字或更多 确定具有某个属性 P 且 A X B 的整数 X 的数量 SPOJ 有很多这样的任务 https www google com q 22s
  • pthread 线程状态

    是否有一种机制可以用来判断 pthread 线程当前是否正在运行或已退出 如果线程尚未退出 pthread join 是否有一种方法能够在特定时间段后超时 如果您仅针对 Linux 请使用http www kernel org doc ma
  • 在 C# 中捕获异常

    我有一个简单的添加按钮 ADD Click 代码是 protected void Add Click object sender EventArgs e string strConnectionString ConfigurationMan
  • 您会在哪里使用友元函数与静态成员函数?

    当我们希望非成员函数访问该类的私有成员时 我们将其设为该类的友元函数 这赋予它与静态成员函数相同的访问权限 两种选择都会为您提供一个不与该类的任何实例关联的函数 什么时候我们必须使用友元函数 什么时候必须使用静态函数 如果两者都是解决问题的
  • 从用户操作中禁用整个活动

    有没有一种简单的方法来禁用用户与活动交互 当有一个操作正在运行时执行 并且标题栏中有一个旋转的进度条 编辑 看来我还不够清楚 我的意思是 虽然我已经有一个旋转的进度条 但用户仍然可以按活动上的任何按钮 我想禁止用户在任务正在运行 然而 我不
  • 错误:扩展器控件可能无法在 PreRender 之前注册

    我正在尝试将 Ajax 控件添加到我的 aspx 页面 我刚刚添加了
  • 在 Xamarin.Forms 中添加方向更改布局

    我需要实现的是 在将屏幕从纵向更改为横向时向现有页面添加布局 我已经成功地使用检测方向变化void OnSizeAllocation 双倍宽度 双倍高度 但我无法为此事件添加布局 我的示例 C 代码是 public class MyLayo
  • Struts2 JSON 拦截器未填充我的 Action 类

    我正在开发一个 Web 应用程序 其中客户端 JavaScript 库 ExtJS 使用 JSON 请求负载向支持 Struts 的后端发送请求 我的问题是我不知道如何将变量从有效负载获取到我的 Action 类中 我通过使用日志语句知道前
  • 在类型中找不到枚举大小写开关

    有人可以帮我解决这个问题吗 我有以下内容public enum public enum OfferViewRow case Candidates case Expiration case Description case Timing ca
  • 如何延迟显示/隐藏引导工具提示?

    我无法使 Twitter 引导工具提示的数据延迟属性正常工作 我使用它的方式如下 这是我的使用方法 a href with delay a 但我没有看到显示 隐藏有任何延迟 有什么想法吗 最后我让它与数据属性一起工作 data delay
  • 如何在 setup.py 中运行 Makefile?

    我需要编译ICU http icu project org使用它自己的构建机制 因此问题是 我怎样才能运行一个Makefilesetup py 显然 我只希望它在构建过程中运行 而不是在安装时运行 我通常使用的方法是覆盖有问题的命令 fro
  • 应用已被 Google Play 删除,因为旧版本不符合新的后台位置政策

    我调整了位置数据的权限和使用 并将其发布在新版本 v10004 中 不幸的是 我的应用程序仍然被删除 因为以前的版本不符合新的后台位置规定 如我从 Google 收到的邮件中所述 受影响的 APK App Bundle v10003 我找不
  • 在bash脚本中输入MySQL密码

    我有一个 bash 脚本 需要在 MySQL 中执行一些操作 到目前为止我有这样的事情 bin sh read p Enter your MySQL username sqluname read sp Enter your MySQL pa
  • CLASSPATH 中存在未使用的 JAR 文件的影响

    我在这里阅读了很多有关可用工具的问答unusedJAR 例如 loosejar http code google com p loosejar 类路径助手 http classpathhelper sourceforge net 我的问题是
  • 当更改来自另一个函数时,onchange 事件不会触发

    我有一个输入文本 它从 Javascript 函数 带有倒计时的计时器 获取他的值 我想在输入文本为 0 时引发一个事件 所以我使用更改事件监听器 不幸的是 当更改来自 javascript 函数时 它似乎不会引发该事件 即使更改来自 Ja
  • 通过“this->member”访问c++成员类比隐式调用“member”更快/更慢

    经过我们的朋友谷歌搜索后 我无法得到以下观点的明确看法 我习惯这样称呼班级成员this gt 即使不需要 我发现它更明确 因为它在维护一些带有大量变量的繁重算法时很有帮助 当我正在研究一种应该优化的算法时 我想知道是否使用this gt 是
  • 使用 Python 3 在 Mac 上没有名为“_tkinter”的模块

    我正在尝试使用 Tkinter 作为 GUI 将我的脚本捆绑到 app 中 而执行捆绑的包装器是 Platypus 当我去运行该应用程序时 我收到此错误 Traceback most recent call last File Users
  • 使用 Robomongo 连接到 Meteor

    我在 Windows 上的本地虚拟机上运行 Meteor 可以使用 IP 地址 192 168 56 111 访问该虚拟机 当我使用 Robomongo 时 我使用此 IP 地址并将其指向端口 3001 但无法连接 我应该期待它连接吗 如果
  • 如何获得 firebird 数据库上的独占锁以执行架构更改?

    更具体地说 我正在使用 firebird 2 1 和 Visual Studio 的 DDEX Provider 并且我正在使用 c 工作 我遇到一种情况 我试图将模式更改从 C 应用到数据库 以 更新 我的数据库 在此过程中 我从 fir
  • ValueError:在 ECB 模式下数据必须与块边界对齐

    我正在使用以下代码在 ECB 模式下尝试 aes 128 加密 from Crypto Cipher import AES key abcdefghijklmnop cipher AES new key encode utf8 AES MO