使用 PyCrypto 使用 32 字节初始化向量解密 MCRYPT_RIJNDAEL_256

2024-01-20

我有用 PHP 加密的数据,如下所示:

mcrypt_encrypt(MCRYPT_RIJNDAEL_256, SECRET, $data, MCRYPT_MODE_CBC, $iv)

我需要在 Python 3 应用程序中解密这些数据。我正在尝试使用 PyCrypto,但我对其他库持开放态度。我希望以下内容能够发挥作用:

decryptor = AES.new(key, mode, IV=IV)
plain = decryptor.decrypt(ciphertext)

我的初始化向量是32字节,抛出以下异常:

ValueError: IV must be 16 bytes long

如何设置 PyCrypto 使用 32 字节初始化向量和 32 字节块大小? 或者,是否可以使用不同的库来解密数据?


感谢评论,我实施了一个合适的解决方案。我修改了rijndael.py在链接的重复问题中接受字节而不是字符串。然后,我按如下方式使用它来使用 32 字节初始化向量解密 32 字节块。

from rijndael import rijndael

iv = b'myInitializationVectorfoobarfoob'
key = b'myKeyfoobarfoobarfoobarfoobarfoo'
text = b'myCipherTextFoobarfoobarfoobarfo'

r = rijndael(key, block_size=32)
plaintext = r.decrypt(text)
l = ''.join([chr(a ^ b) for a, b in zip(plaintext.encode('latin-1'), iv)])
print(l)

请注意,使用它而不是 PyCrypto 是唯一必要的,因为 libmcrypt 错误地将数据块大小(以及初始化向量大小)设置为等于密钥大小。据我了解,对于 AES-Rijndael,数据块大小应始终为 128 位。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 PyCrypto 使用 32 字节初始化向量解密 MCRYPT_RIJNDAEL_256 的相关文章

随机推荐

  • 获取连接到服务器的在线用户的名称

    我是 ASP NET 新手 我经历过这个link http www aspdotnetfaq com Faq How to show number of online users visitors for ASP NET website a
  • 从通知可分割对象中读取内容以进行后续通知

    我正在尝试构建 Whatsapp 通知过滤应用程序 在其中监视来自 Whatsapp 的所有通知并根据过滤策略删除消息 我可以使用下面的链接代码获取消息内容从 Parcelable contentView 或 contentIntent 中
  • 自动验证 htaccess (401) 用户名​​密码登录

    我有一个网页 每 5 分钟刷新一次 其中包含客户详细信息 我通过基本和标准 htaccess 和 htpassword 文件类型登录系统向其添加了用户名密码 因为文件的一部分包含公司数据 但我需要在我的工作电脑上打开相同的网页 该电脑是连接
  • 为什么需要在 ERD 中指出识别或非识别关系?

    在 ERD 中 弱 非识别关系是连接两个强实体的关系 并用虚线表示 强 标识关系是将强实体连接到弱实体的一种关系 弱实体是包含来自其相关实体的外键 FK 作为其自身主键 PK 的组成部分的关系 并指示通过实线 我的问题是 所以呢 为什么区分
  • Click() 方法并不总是有效

    我在 Selenium WebDriver 中进行测试时遇到问题 这Click当程序尝试单击按钮时 事件并不总是有效 在一项测试中一切正常 而在其他测试中则不然 每个测试都从一页开始 首先 用户必须从一个选项中选择一个select组件 然后
  • 检查文件扩展名

    我正在使用以下 PowerShell 代码 我需要在 if 条件下检查其扩展名 foreach line in lines extn line Split 1 if extn eq xml 有没有一种简单的方法来检查 PowerShell
  • 引用分支中switch语句的值

    Swift 有没有办法引用我在分支中打开的值 例如 switch UIDevice current userInterfaceIdiom cases default fatalError User interface idiom value
  • 如何为 Amazon ECR 配置自定义域名

    Amazon Elastic Container Repositories ECR 具有相当不人性化的 URI 例如99999999999 dkr ecr eu west 1 amazonaws com 是否可以为 ECR 配置自定义域名
  • 如何在 smack API 中处理添加请求

    我使用 Smack API 来编写我的 Google talk 客户端 现在我需要处理对此的添加请求 我将 SubscriptionMode 设置为手动 现在我必须注册存在数据包的侦听器 但我不知道如何 任何人都可以帮忙吗 我还没有尝试过
  • PDF 文件的结构? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 对于一个小项目 我必须解析 pdf 文件并获取其中的特定部分 简单的字符链 我想使用 python 来做
  • jq:从数组中删除元素

    我有这个 JSON 文件 想要从数组中删除一个元素 address localhost name local vars instances one two 我正在使用这个命令 jq del vars instances select ind
  • Scikit-learn RandomizedLasso 和 RandomizedLogisticRegression 已弃用

    我注意到linear model RandomizedLasso and linear model RandomizedLogisticRegression为套索回归实现稳定性选择的方法已被弃用 有谁知道为什么 稳定性选择不是一个好的方法吗
  • Xamarin.Forms 上传多个带有数据的图像

    我找到了几个有关如何在 Xamarin 中上传图像或多个图像的教程 但是 我还没有找到如何发送多个图像 每个图像都包含一些卫星数据 这是模型在服务器上的样子 public class AppFileDTO public IFormFile
  • 检查C#中的管理员权限

    我想知道程序是否以管理员身份运行 用户不必是管理员 我只想知道我的应用程序是否有权编辑某些以管理员身份运行时可编辑的受保护文件 这将返回一个 bool valid using System Security Principal bool i
  • 使用 Numpy 在 1D numpy 数组中查找局部最大值/最小值

    您能否建议 numpy scipy 中的一个模块函数可以在一维 numpy 数组中找到局部最大值 最小值 显然 最简单的方法是查看最近的邻居 但我希望有一个公认的解决方案 它是 numpy 发行版的一部分 在 SciPy 中 gt 0 11
  • Zend Framework 2 如何渲染模块内的部分?

    我的模块内的目录结构是这样的 Api Module php config module config php src etc view api api index phtml partial test phtml 然后 我正在这样做 但是
  • 在SQL中计算两个日期之间的差异,不包括周末

    我想构建一个 SQL 查询来计算两个日期之间的差异 而不计算结果中的周末天数 有没有办法格式化日期以获得这个结果 以 Oracle 数据库为例 select sysdate creation dttm from the table 你应该尝
  • 在 Objective-C 中使用 C 函数(适用于 iPhone)

    大家好 我自称是 iPhone 编程新手 拥有更长的 Perl 和 Web 背景 30 年 但上周我冒险买了几本好书 在死记硬背并阅读了 1000 多页之后 并且对它有了很好的理解之后 我已经朝着第一个优秀的原生 iPhone 应用程序迈进
  • 使用 IntelliJ 设置 scala

    我有 Intellij Ultimate 11 1 安装了 scala 插件 我使用 homebrew 安装了 scala 2 9 2 其中将 scala 放入 usr local Cellar scala 2 9 2 gt gt whic
  • 使用 PyCrypto 使用 32 字节初始化向量解密 MCRYPT_RIJNDAEL_256

    我有用 PHP 加密的数据 如下所示 mcrypt encrypt MCRYPT RIJNDAEL 256 SECRET data MCRYPT MODE CBC iv 我需要在 Python 3 应用程序中解密这些数据 我正在尝试使用 P