问题标签 [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 投票
3 回答
643 浏览

python - Python AES-CTR is not compatible with Golang

I'm using Python2.7 with pycryptodome 3.6.6 and Golang1.10.4 on Ubuntu 16.04.

The encrypt algorithm I choose is AES-CTR-128. But the data encrypted by Python and Golang have different result. So there's a problem to communicate between the apps written by these two languages.

Here is my implement:

Python:

Golang

0 投票
1 回答
5123 浏览

python-3.x - TypeError:encrypt() 后不能调用decrypt()

我正在编写一个简单的 AES 加密代码,但我被困在它说的部分:

TypeError:decrypt()之后无法调用encrypt()

我尝试更改这些行的顺序,但没有帮助:

我有两个例子:

示例 1

示例 2

0 投票
1 回答
118 浏览

python - Tor Stem:公钥与隐藏服务描述符中的一个不匹配

我正在尝试获取我创建的隐藏服务的公钥。有两种方法,一种来自我拥有的私钥,另一种是访问隐藏的服务描述符并获取公钥字段。

我写了一个python脚本来测试两者。但是,他们不一样!

这是脚本(pkey 是之前从 Tor 控制器生成的测试私钥)

我从私钥得到的公钥是:

来自隐藏服务描述符的一个是:

进行一些搜索会导致我找到 RSA 的不同密钥格式。我试图使格式匹配,但我没有运气!

如何解决这个问题?

0 投票
1 回答
1551 浏览

python - 带有pycryptodome的python中的AES OFB实现

我正在尝试使用 pycryptodome 库实现 AES 加密的 OFB 模式,但我在理解我应该向密码提供什么输入时遇到问题。我知道 pycryptodome 已经实现了 OFB,但我需要将纯文本分解为字节,应用 OFB 的正确步骤以使用 ECB 模式的 AES 密码对其进行加密,然后对其进行解密。

诸如字节字符串之类的字节字符串如何b'\x16\xa8W\xed.)\xc4\xb8x\xd6\xcf\x7f\xf3\xe3;^'在python中工作?

我需要获取这样一个字节字符串,对其进行加密,然后将其分成两半并与纯文本的 8 个字节进行异或。我理解和做到这一点的最简单方法是使用 AES 加密 IV(上面的字节字符串),然后将其和纯文本转换为二进制并对它们进行异或,然后将它们转换回字节字符串。我怎样才能做到这一点?

打印输出:

如果您对我的程序的更好架构/解决我的问题的方法有任何建议,请随时启发我。

0 投票
1 回答
48 浏览

python - 检查具有相同数据的哈希总和 => 总是 2 个不同的总和

我正在使用 Python 开发工作量证明系统。
为了生成哈希值,我正在使用这个函数

当我生成一个“交易”时,它会做工作证明,同时将它加一,看看哈希是否以 4 个零开头。

如果事务以两个零开头,则将此文件放入字典中。该字典被写入一个文本文件。当我想验证此交易并查看这些值是否与哈希值真正匹配时,即使使用相同的数据,我也总是得到错误的哈希值。

编辑:
输入值都被转换为字符串。sender、msg 和 signature 是字节,其中 nonce 是整数,timestamp 是浮点数。

0 投票
1 回答
693 浏览

python - 如何解码 DER/PEM 格式的 IPFS 私钥和公钥?

如何解码 DER/PEM 格式的 IPFS 私钥和公钥,可以与 pycryptodome 库(对于 Python 3)一起使用?我从 IPFS 配置文件中获取密钥作为字符串,所以我不会在这里解释这个过程。

我正在尝试做的事情:

我得到以下异常:

与 privateKey 类似的问题。密钥采用什么格式以及如何将其转换为可接受的格式?

import_key 函数源代码在那里:https ://github.com/Legrandin/pycryptodome/blob/master/lib/Crypto/PublicKey/RSA.py#L682

0 投票
0 回答
167 浏览

python - 在python中将网络实现与RSA混合

我正在尝试在 Python 中实现Mixnet。考虑链接的 wiki 页面中的示例 -使用 ' 的公钥A加密消息,A然后使用 ' 的公钥加密生成的密文以及B' 的地址M

当我运行尝试执行上述操作的代码时,我得到ValueError: Plaintext is too long.了这是因为我没有B以正确的方式附加地址并且我超过了 RSA 的 1024 大小。如何使用 RSA 完成此任务?

tl; dr 我该如何这个处理 RSA?

0 投票
1 回答
386 浏览

python - AES 加密问题。无法用正确的密钥解密

我正在尝试解密加密数据。使用 pycryptodome lib 以 AES CBC 模式加密数据。有这样的错误——“ValueError:不正确的 AES 密钥长度(256 字节)

0 投票
1 回答
195 浏览

python - RSA 解密后 AES 密钥出错

我正在尝试使用 pycryptodome 实现混合密码系统。

有这样的输出:

我可能专门为 RSA 加密填充,但我不知道该怎么做。

0 投票
0 回答
338 浏览

encryption - 使用 Pycryptodome 进行混合加密的正确密钥交换过程

我正在编写一个使用 ZeroMQ 套接字和Pycryptodome创建安全通信通道的模块。

客户端和服务器之间的初始握手将遵循以下步骤:

  1. 双方将他们的公共RSA 密钥发送给对方。
  2. 服务器生成 AES 会话密钥和该密钥的签名。
  3. 服务器在将会话密钥和签名发送给客户端之前对其进行 RSA 加密。(*)
  4. 客户端验证签名并存储会话密钥。
  5. 客户端生成一个令牌,生成它的签名并将两个 AES 加密的文件发送到服务器。
  6. 服务器验证签名并回显令牌。
  7. 如果收到的令牌与发送的令牌匹配,则认为握手成功。

我在这个线程上发现,最好先对消息签名然后加密,而不是先加密然后签名。

问题是 2048 位 RSA 密钥的签名是 256 字节长。同一密钥的最大加密大小为 190 字节。这意味着我无法按照线程中的建议加密签名。

我应该使用 AES 会话密钥加密签名吗?我应该采取另一种方式吗?

我知道有“标准化”密钥交换协议(例如ECDH),但它们在 Pycryptodome 中尚不可用。