- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在测试一些使用 python-gnupg
的代码加密/签名/解密一些明文,我想即时生成一个 key 对。 GnuPG(当然)在生成 key 对时非常偏执,它从我的系统中吸收了大量的熵。
我找到了 this answer在 unix.stackexchange.com
上,但使用 rngd
让 /dev/random
从 /dev/urandom
拉取听起来像是个坏主意。
由于我正在测试,所以我不需要很高的安全性,我只需要尽快生成 key 对即可。
一个想法是离线预生成一些 key ,并在我的测试中使用这些 key 。无论如何,我想在执行测试时以编程方式生成我的临时 key 对。
这是我现在使用的代码(也就是说, super 慢而且不适合测试):
from tempfile import mkdtemp
import gnupg
def temp_identity():
identity = gnupg.GPG(gnupghome=mkdtemp())
input_data = gpg.gen_key_input(key_type='RSA', key_length=1024)
identity.gen_key(input_data)
return identity
最佳答案
使用任何方法更改 /dev/random
以退出 /dev/urandom
完全没问题,一旦熵池以适当的随机状态启动(这在硬件 x86 机器上不是问题,但可能需要讨论其他设备)。强烈推荐观看The plain simple reality of entropy -- Or how I learned to stop worrying and love urandom , 32C3 的讲座。
如果您想加速即时 key 生成,请考虑使用较小的 key 大小,例如 RSA 512(1k key 也不是很安全)。这会导致 key 不安全,但如果这对测试没问题——那就去做吧。使用另一种算法(例如,如果您已经拥有 GnuPG 2.1,则使用椭圆曲线)也可能会加快 key 生成速度。
如果你真的想坚持使用 /dev/random
并且较小的 key 大小不能提供足够的性能,你可以很好地预生成 key ,使用 gpg 导出它们 -- export-secret-keys
并导入它们而不是创建新的。
gpg-agent
也知道选项 --debug-quick-random
,它似乎适合您的用例,但我以前从未使用过它。来自 man gpg-agent
:
--debug-quick-random
This option inhibits the use of the very secure random quality level (Libgcrypt’s
GCRY_VERY_STRONG_RANDOM
) and degrades all request down to standard random quality. It is only used for testing and shall not be used for any production quality keys. This option is only effective when given on the command line.
关于python - 如何使用 GnuPG 快速生成 OpenPGP key 对进行测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35987023/
这是一个基于 Python 的 GnuPg 用户友好的前端程序。 一直试图找到只导入一个公钥而不是所有公钥的命令。 这将导入文件中的所有键 gpg --import Some_pub_keys.txt
我需要生成一个 PGP 公钥/私钥。我以前从来没有这样做过。我已阅读文档,但给出的示例与我在计算机上看到的不匹配。 我用 gnupg 生成了 key 。 我运行命令列出公钥 gpg --list-ke
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 8年前关闭。 Improve thi
几年前,我改变了我的真实姓名。然后我自然想将名称更改为我的公共(public)和私有(private) GPG key 。我已经设法用我的新真实姓名为我的公钥生成子 key ,并且我已经设法用我以前的
我想删除用户 ID 或更新其评论,或者至少将另一个用户 ID 设为默认值。这是因为它包含的注释有一个愚蠢的排版错误。喜欢: gpg> list pub 4096R/xxxxxxxx created
我在使用 Python gnupg 模块验证签名时遇到问题。使用此模块,我可以加密和签署文件: gpg.encrypt_file(stream, encrypt_for, sign=sign_by,
我确实用 git 签署了提交,这是一个大问题,我无法从 CLI 以外的任何地方输入 gpg key 密码。例如,如果我将在 vscode 中提交,它将失败。所以我想出了一个想法,只需从 CLI 输入密
我是 PGP 新手,我正在尝试使用 GnuPG 通过 this tutorial 生成 PGP 私钥. 基本上,我在命令提示符下键入以下命令(在管理员模式下): gpg --gen-key 输入以下所
我有一个 Java 应用程序,它从远程计算机获取 GnuPG 加密文件,我需要解密和处理它们。然后我需要加密输出文件并将其发送到远程计算机。 首先我尝试了gnupg-for-java ( https:
尝试在 Python 中初始化 GnuPG 绑定(bind)时,我收到一条错误消息 TypeError: __init__() got an unexpected keyword argument '
如何通过 GPG(GnuPG) 中的子 key (多个子 key (e))加密 pub rsa4096/22E49AB870AD169A 2017-03-09 [SC] uid
我收到一个错误: gpg: no default secret key: No secret key gpg: [stdin]: clearsign failed: No secret key GPG
以下是我一直在尝试的代码。 import os import gnupg import pdb pdb.set_trace() gpg = gnupg.GPG(gnupghome='new') inp
我需要自动加密文件,例如myfile.xls 到 myfile.gpg。现在,当我尝试自动加密或使用 GNU 隐私助手对其进行加密时,加密的文件是 myfile.xls.gpg。当我删除该 .xls
我想对文件 /tmp/public.txt 进行对称加密. gpg --symmetric /tmp/public.txt 该命令将调用 enter passphrase窗口,我想自动发送密码。 我在
我正在尝试导入公钥、读取 csv 文件、加密该文件并将加密文件存储在文件夹/目录中。程序运行但在我运行脚本后似乎没有生成、创建或输出任何内容。任何建议。 import gnupg gpg = gnup
关闭。这个问题是off-topic .它目前不接受答案。 想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。 8年前关闭。 Improve this q
是否有一些 Gpg2 使用的库的依赖树或图,例如 libgpg-error 或 libassuan &c.? 或者另一种方法来确定在其中一个获得新版本后我需要重新编译哪些?例如。据我所知,libgpg
我正在使用 GNUPG 工具通过命令行执行加密/解密。在删除公钥时,我给出了以下命令: gpg2 --quite --yes --delete-key "Solveon DB" 命令执行后我得到了问题
我正在尝试对一些使用GPG(当前为1.4.10版)的自定义软件进行过时的验证,以执行对称加密/解密过程。我当前的加密命令如下所示: gpg --batch --no-tty --no-use-agen
我是一名优秀的程序员,十分优秀!