问题标签 [pycryptodome]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1234 浏览

python - PyCrypto Cyphertext 长度不正确,即使只有一个字符数据

我想加密/解密包含在 .csv 文件中的一组数据。我使用以下代码生成我的 RSA 公钥/私钥:

然后我用这段代码加密没有任何问题:

我可以通过修改这一行来修改我的数据是如何分开的:

rep = [rep[i:i+n] for i in range(0, len(rep), n)]

此行按 n 个字符组分隔我的数据

这是我解密数据的代码,它提出:

ValueError:长度不正确的密文。

我试图编码一个示例文件,它引发了这个 ValueError 。然后我尝试直接在 Python 解释器上使用一个只包含一个字符的文件。加密运行良好,但解密因与上述相同的错误而中断。

0 投票
2 回答
6254 浏览

python - ImportError:无法从“Crypto.PublicKey”导入名称“RSA”

您好我正在尝试将我的 python 脚本连接到 google firebase。我在安装 pyrebase 时遇到了一些问题。当我使用 pip install pyrebase 安装时,我收到此错误消息:

图片1:

在此处输入图像描述

但是我尝试了几种方法来解决这个问题,一种方法是通过 pip install pyrebase4 安装。安装会很好,但是当我去写 import 语句 import pyre base 时,我会得到这个错误:

图 2:

在此处输入图像描述

我还尝试卸载 pyrebase4 并安装 setuptools 和 gcloud,我应该可以从中安装 pyrebase。但是它无法构建 pycryptodome 轮。然后它执行这个错误:

图 3:

在此处输入图像描述

谁能帮我把它安装好,我需要尽快完成一个项目,但这个瓶颈真的让我压力很大

0 投票
2 回答
434 浏览

pycrypto - 使用 PyCrypto 编写的 RSA 代码不适用于 PyCryptodome

我正在尝试使用 PyCryptodome 运行我为 PyCrypto 编写的两个简单函数。以下是具有相关类成员定义的函数:

EncryptText 和 DecryptText 这两个函数使用 PyCrypto 方法 encrypt 和 decrypt 不再在 PyCryptodome 中维护(外部代码调用它们时会引发 NotImplemented 错误)。谁能帮我将它们转换为符合 PyCryptodome 的代码?提前致谢!

0 投票
3 回答
7738 浏览

python-3.x - 获取异常:对象类型不能传递给 C 代码

我在 Python 3.7.2 上安装pip install pycryptodome 。我遇到了obj = AES.new(key, AES.MODE_CBC, iv)行的异常。我的代码是:

我一直尝试但没有得到解决方法。

0 投票
2 回答
630 浏览

python - 否 模块名称 Crypto

我正在尝试在我的 python 程序中导入 Crypto,但出现错误。我在窗户上工作。请帮忙。

命令

测试.py

0 投票
2 回答
2159 浏览

python - Python Pycryptodome 加密引发“长度不正确的密文”错误

继续我之前的pycryptodome问题,我的要求现在更改为支持90G数据进行加密。所以我做了一些设计上的改变,解构了加密代码,让它们都在子进程中运行。

上面的想法是从这里触发的

现在我有2个文件:

encutil.py

主文件

假设公钥和私钥都可用且到位。

而且,当我在执行一段时间后执行以下命令时,我收到错误:长度不正确的密文,没有任何回溯:

但它对于较少的数据输入运行成功,例如40G的数据

我的系统详细信息是:

如果我不通过systemd-run控制内存资源,那么 Python 会在某个执行点抛出MemoryError并以相同的方式失败,并显示“ Ciphertext with wrong length. ”消息

我无法从stackoverflow中已经提出的解决方案中得到任何线索

修改前的原代码设计如下:

0 投票
1 回答
1160 浏览

python - 如何在 Python 中使用 RSA 私钥(非正常签名​​)加密数据?

我想用私钥(不是普通签名)进行 RSA 加密,但 PyCryptodome 似乎无法做到。

我需要使用私钥执行此操作的原因是,我需要获得与不是我编写的 Java 程序相同的结果,该程序错误地使用 javax.crypto.Cipher 和私钥来签署消息......

Java程序的结果:

  • 哈希:9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08

  • 符号:k8y6zMfl0KVuQWWOmRxieXF1aH0dpVUX......(总是一样)

我的 Python 脚本的结果:

  • 哈希:9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08

  • 符号:GfLVqZDnu5aLHHbi0tM5OtCBEVKKRcjW......(每次都改变)

0 投票
1 回答
1058 浏览

rsa - 无法使用 pycryptodome 验证 RSA 签名

我正在尝试在 Android 中签署消息,然后将消息、签名和公钥发送到 Django 服务器进行验证。我在服务器上使用 pycryptodome 进行验证,但验证总是失败 - 问题是我不知道我做错了哪一点。

这就是我在 Android 上所做的:

生成 RSA 公钥私钥

使用私钥对消息进行签名,将签名编码为 base64

提取公钥为base64

将消息、签名(base64)和公钥(base64)发送到服务器

尝试验证签名

然后在服务器上(使用 Python 3、Django 1.11、pycryptodome 3.8.1),我收到消息、签名消息和公钥:

在这一点上,我有这样的事情:

然后我尝试像这样验证:

这总是失败,我不知道为什么。一些问题:

  • 我已经用“-----BEGIN RSA KEY-----”和“-----END RSA KEY-----”包围了公钥 - 对吗?如果不这样做,我会收到关于 RSA 密钥格式无效的错误

  • 我的私钥和签名消息都有换行符 - 我应该删除这些吗?我已经尝试过使用和不使用它们,它似乎没有什么不同,但会感谢任何建议

  • PyCharm 抱怨signature.verify(digest, signature.encode())

    预期类型 ModuleType,取而代之的是 SHA256Hash。

文档说摘要应该是 Crypto.Hash 的一种类型,而我使用的是 Crypto.Hash.SHA256Hash,那么为什么 PyCharm 会抱怨呢?我可以忽略吗?

  • 我正在使用 pycryptodome 的 PKCS1_v1_5 类来创建签名验证器。我不知道那是什么,我只是按照我在 SO 上看到的代码。使用正确吗?

  • 我正在使用算法“SHA256withRSA”在android上签名,并在服务器上使用带有RSA密钥的PKCS1_v1_5并传入消息的SHA256哈希。我对所有这些标准知之甚少。这听起来对吗?

我不知道去哪里形成这里,任何建议表示赞赏!

0 投票
0 回答
703 浏览

encryption - 解密完成后获取计数器值

我正在尝试使用 openssh/openssh-portable 库生成的密钥在 SSH 中解密 AES-CTR。我成功地从内存中提取了密钥。现在,经过一些 printfs 和研究后,我发现似乎每个加密数据包的初始计数器都会增加,这意味着后续数据包(不是字节)与前数据包具有不同的计数器值。对于我的解密,我想逐包解密,所以现在我的问题是:

  • 我能否以某种方式获得 pycryptodome 中 AES 计数器的“结束”计数器,以便我可以使用“结束”计数器作为解密的新初始计数器?

我的 pycrypo 线如下所示:

一些链接:

0 投票
1 回答
236 浏览

python - 无法使用相同的 AES 对象两次解密给定的密文

我正在使用 AES 对象 (aesDecryptObj ) 来解密使用单独的 AES 对象 (aesEncryptObj ) 加密的密文。

连续使用 aesEncryptObj 任意次数都会产生成功的结果,但是,当我使用 aesDecryptObj 连续两次或更多次解密给定的密文时,我收到以下错误:

如果给定相同的密文,aesDecryptObj 是否会产生与第一次解密该值时相同的结果?