问题标签 [gnupg]
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.
perl - 是否有规范的(如果不是核心的)Gnu Privacy Guard CPAN 模块?
我正在寻找用于小型项目的正确 GPG Perl 模块。我看到有许多竞争模块提供几乎相同的功能,但有些模块有许多未解决的错误,五年内没有收到更新等等。是否有一个应该始终使用的 GPG 模块,或者我只需要咬紧牙关,评估哪一个最适合我的需求,谁的错误影响最小?
maven - 在多台服务器上使用相同的 PGP 密钥?
我猜这个问题属于 PGP 密钥的“最佳实践”。首先是一个非常快速的背景。我领导了一个开源项目,并且收到了许多发布到“Apache Maven”存储库的请求。为此,我需要使用 PGP 密钥对每个版本进行签名。
所以我使用 PGP 并在我的本地计算机上生成了一个公钥/私钥。我导出并加密了“密钥”并将其传输到我的“构建服务器”。构建服务器拒绝导入密钥,说它无效。进一步的分析使我相信,因为我们的构建服务器运行在与我在本地计算机上使用的用户 ID 不同的用户 ID 下,所以它们是不兼容的。
我会想,既然 PGP 密钥对与我的名字相关联,那么我作为一个人应该只拥有一个 PGP 密钥吗?但真的是这样吗?我应该每台机器生成一个吗?并且只使用导入/导出来备份它们?我可以很好地做到这一点,当我尝试在多台机器上复制 PGP 密钥时,它看起来真的很困难,好像我可能以错误的方式使用 PGP。即,我想我为自己创建一个密钥并将其复制到构建服务器,也许还使用它来加密来自我自己的电子邮件(我是否需要这样做)等等。
security - 签署大量小数据块的安全问题
我想使用非对称密钥算法(最好是带有 GPG 的 RSA)对大量的小数据块(哈希,例如 SHA)进行签名,并使签名的文件公开可用。
这是否会带来安全问题,比如让我的私钥更容易计算?
如果是这样,有什么方法可以防止这种情况发生?
编辑:
例如,这应该用于:文件时间戳签名,以签署某个文件在给定时间存在的事实。由于带宽有限,只有散列被发送到签名服务器,签名服务器在散列上签名并返回签名。
java - 通过运行时进程在 Java 中调用 GnuPG 来加密和解密文件 - 解密总是挂起
注意:稍后再回来讨论,因为我找不到可行的解决方案。手动排空输入流而不是使用 BufferedReaders 似乎没有帮助,因为 inputStream.read() 方法会永久阻止程序。我将 gpg 调用放在一个批处理文件中,并从 Java 调用该批处理文件以仅获得相同的结果。一旦使用解密选项调用 gpg,输入流似乎变得不可访问,从而阻塞了整个程序。当我有更多时间专注于这项任务时,我将不得不回到这一点。与此同时,我将不得不通过其他方式(可能是 BouncyCastle)进行解密。
可能尝试的最后一个选项是调用 cmd.exe,并通过该进程生成的输入流写入命令......
我感谢在这个问题上的帮助。
我已经在这个问题上工作了几天并且没有取得任何进展,所以我想我会在这里寻求帮助。
我正在创建一个简单的程序,它将通过 Java 运行时进程调用 GnuPG。它需要能够加密和解密文件。加密有效,但我在解密文件时遇到了一些问题。每当我尝试解密文件时,该过程都会挂起。exitValue()
总是抛出它是 IllegalThreadStateException 并且程序像它还在等待一样突然出现。这些方法的代码附在下面。该程序的最终目标是解密文件,并在 Java 中解析其内容。
我尝试了三种让 gpgDecrypt 方法工作的方法。第一种方法涉及删除 passphrase-fd 选项并通过 catch 块中的 gpgOutput 流将密码写入 gpg,假设它像通过命令行一样提示输入密码。这不起作用,所以我将密码放在一个文件中并添加了 -passphrase-fd 选项。在这种情况下,程序会无限重复。如果我通过 gpgOutput 流写任何东西,程序就会完成。打印的退出值的值为 2,结果变量将为空白。
第三个选项是 BouncyCastle,但我无法让它识别我的私钥(这可能是一个单独的帖子)。
我用来加密和解密的密钥是由 GnuPG 生成的 4096 位 RSA 密钥。在使用密码短语和密码短语文件的两种情况下,我都尝试将输出通过管道传输到文件> myFile.txt
,但似乎没有任何区别。
以下是 gpgEncrypt、gpgDecrypt 和 getStreamText 方法。自从加密工作以来,我都发布了两者,并且我看不到加密和解密方法之间的执行和处理过程之间的任何明显差异。getStreamText 只是读取流的内容并返回一个字符串。
编辑:快速说明,Windows 环境。如果我复制解密命令输出,它可以通过控制台正常工作。所以我知道该命令是有效的。
javascript - 使用 Javascript 使用密钥对签署和验证文本
是否有任何可用的库(或我可以实现的编写良好的算法参考)允许我使用私钥签署一段文本,最好是我现有的 SSH (RSA) 或 PGP 密钥?
我的目标是编写一个书签来签署我的博客文章,并提供另一个书签以允许其他人验证它们。我不想进行任何形式的安全通信。我只是认为能够存储其他人的公钥并使用它们自动验证作者身份可能会很整洁。
php - 如何使用 php 调用 linux GPG 加密文件与 passphase
我有一个任务需要
php中使用gpg加密上传文件
我的代码是:
它通过将代码粘贴到linux中来工作
但不适用于 php 任何解决方案
java - CI环境中Maven项目的GPG密钥在哪里保存?
我正在尝试使用maven-gpg-plugin:sign在部署到 Sonatype OSS 存储库之前签署项目工件。问题是我应该在哪里保存我的密钥secring.gpg
:
- 在持续集成
~/.gnupg
目录中 - 在项目源代码中,例如
src/test/resources/gpg/secring.gpg
为什么?
javascript - 在 Javascript 中检查 GPG 签名
已经有一种在 JavaScript 中提取公钥和加密消息的解决方案,但我不知道如何解密消息或检查签名。有任何想法吗?
据我所知,已经有一个用于实际解密消息的功能,现在只需提取私钥即可对消息进行签名。如果我错了,请纠正我,但看起来第1步是解密密钥字符串,然后得到MPI(多精度整数),然后将其分成质数和解密器,可以传递给解密功能。
linux - 使用脚本暴力破解 GPG 密码
我忘记了我在 Linux 上的 gpg 密钥的密码。有人可以帮我写一个简单的脚本来使用暴力破解密钥吗?我记得密码中可能包含的一些单词,所以希望我的电脑用不了多久就可以暴力破解它。
如果我无法恢复密码,一切都不会丢失,这只是意味着我将无法在接下来的 10 天内处理我的项目,直到我重新开始工作以获取文件的另一个副本,但这次是我会记住密码的新密钥。
但是,如果能够在这 10 天内完成我的项目,那就太好了。
c - 查看 .gpg 文件内容
我正在编写一个 C 应用程序,我想知道是否有办法查看 .gpg 文件内容(然后是加密内容)。有问题的 .gpg 文件涉及我加密的简单 .txt 文件。我知道一点GPGME,它的功能有可能吗?或者其他方式...
编辑:我想到一件事:如果我的应用程序使用“--armor”选项,我有一个 ASCII 模式的 .gpg 文件,而不是二进制文件……所以可以简单地读取 .gpg 文件,对吗?最简单的方法...