问题标签 [pgp]

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 投票
7 回答
81095 浏览

python - 如何在 Python 中进行 PGP(生成密钥、加密/解密)

我正在用 Python 制作一个程序,通过安装程序分发给 Windows 用户。

该程序需要能够每天下载使用用户公钥加密的文件,然后对其进行解密。

所以我需要找到一个 Python 库,它可以让我生成 PGP 公钥和私钥,并解密用公钥加密的文件。

这是 pyCrypto 会做的事情吗(文档很模糊)?还有其他纯 Python 库吗?任何语言的独立命令行工具怎么样?

到目前为止,我所看到的只是 GNUPG,但在 Windows 上安装它会对注册表产生影响,并且到处抛出 dll,然后我不得不担心用户是否已经安装了这个,如何备份他们现有的密钥环等。我宁愿只需拥有一个 python 库或命令行工具并自己管理密钥。

更新:pyME 可能有效,但它似乎与我必须使用的 Python 2.4 不兼容。

0 投票
2 回答
5161 浏览

python - Python 和 PGP/加密

我想使用python创建一个函数来通过公钥加密密码。在用户端,我需要安装将生成密钥对的 PGP 软件。我只想使用公钥进行加密,使用私钥进行解密。问题出在加密功能(如何使用密钥进行加密)以及 pgp 安装中。有人可以告诉我正确的方法吗

谢谢

0 投票
3 回答
3971 浏览

php - PHP 执行 pgp 命令

我想使用 PHP 来“执行”一个 pgp 加密命令。无论命令行如何,我都会收到 err 64(解析器错误)或 162(编码期间完全失败)。因此,我将 PHP 程序中的命令行简化为这个仍然会出错的简单指纹显示:

如果我在命令行上运行“/opt/pgp/bin/pgp --fingerprint”,我会得到“找到 2 个键”和预期的显示。但是 PHP 下的同一个 exec 给了我解析器错误 64。我已经尝试过 "\n" 到字符串命令,但这并没有什么不同。用户在浏览器中以“nobody”身份运行,该浏览器对 pgp 具有执行权限。(如果 pgp 至少没有启动,我什至不会从中看到“解析器错误”。)

为了在 PHP 下运行 pgp,我需要做些什么特别的事情吗?


我已经回过头来尝试实际加密数据文件。这是 pgp 创建的“状态文件”输出。它清楚地在我尝试加密“test.txt”的文件的“权限被拒绝”的最后一行显示错误。那是假的。我已将所有世界 r/w 授予该文件,并且它清楚地访问它,因为状态表明它已加密内容。所以,真正的问题是什么是被拒绝的许可?

其他一些信息:如果我从命令行针对调用 pgp 的 PHP 脚本运行 PHP,它工作正常 - 文件被加密。此外,当从浏览器调用 PERL 时,它会运行相同的命令(使用 SYSTEM())。但是,当浏览器用于调用此 PHP 脚本时,它会失败。显然,以“无人”身份运行存在一些权限问题。

/export/home/pgphome/.pgp/pubring.pkr:open keyrings (1006:public keyring) /export/home/pgphome/.pgp/secring.skr:open keyrings (1007:private keyring) 0x221DC947:encrypt (1030:密钥添加到收件人列表)/export/home/eckankar/dev/www/info/test.txt:encrypt(3048:使用密码 AES-128 加密的数据)/export/home/eckankar/dev/www/info/test。 txt:加密(3124:权限被拒绝)

作为背景,这里是 PHP exec() 命令的参数: /opt/pgp/bin/pgp --encrypt /export/home/eckankar/dev/inc/test.txt --output /export/home/eckankar/dev /www/info/test.xxx -r members --overwrite remove --home-dir /export/home/pgphome/.pgp -v --status-file /export/home/eckankar/dev/inc/test.txt 。呃

此命令中的所有文件夹/目录都已将“rwx”授予世界。

以下是加密成功时状态输出文件的样子,就像从命令行 (/opt/csw/php5/bin/php test.php) 运行而不是通过浏览器运行时一样:

pgp:encrypt (3157:current local time 2009-06-30T11:51:17-05:00) /export/home/pgphome/.pgp/pubring.pkr:open keyrings (1006:public keyring) /export/home/ pgphome/.pgp/secring.skr:open keyrings (1007:private keyring) 0x221DC947:encrypt (1030:key added to recipient list) /export/home/eckankar/dev/inc/test.txt:encrypt (3048:data encrypted使用密码AES-128)/export/home/eckankar/dev/inc/test.txt:encrypt(0:输出文件/export/home/eckankar/dev/inc/test.txt.pgp)

0 投票
2 回答
3324 浏览

ruby - 在 Ruby 中访问 pgp 加密文件

我有一个 pgp 加密的文件,我需要在运行时从中提取数据。
这可以通过仅解密到内存来完成(而不是创建解密文件并在完成后将其删除)吗?

0 投票
1 回答
1208 浏览

.net - 是否有任何适用于 .NET 的非 GPL 开源 PGP 库

我正在寻找用于加密和解密 PGP 文件的免费开源 API。我想在闭源产品和开源产品中使用它,所以它必须是 GPL 以外的许可证。

0 投票
1 回答
2822 浏览

security - 向已签名的文档添加 OpenPGP 签名?

我们想实现一个需要多人对文档进行数字签名的工作流程。如果我自己的钥匙串中有多个密钥,我可以做一些简单的事情:

但是,如果我有一个已经签名的文件并且我想添加一个签名,我该怎么办?一种解决方案是让每个人都为文档生成分离的签名,然后将它们全部打包到一个 zip 文件或其他东西中,但那里的开销要高得多。有没有更好的办法?

0 投票
4 回答
2174 浏览

c# - PGP 免费软件和 c#

如何使用 c# 和命令行使用添加到当前密钥环的公钥加密文件?

谢谢。

0 投票
1 回答
1191 浏览

python - Python API 从密钥服务器获取 PGP 公钥?

是否有任何 Python API 可以从公钥服务器获取 PGP 公钥?

0 投票
1 回答
4622 浏览

php - 如何使用 GNUPG 和 Crypt_GPG

我正在尝试使用 GNUPG 和Crypt_GPG来加密准备通过电子邮件发送到客户端服务器的数据,但我在设置它时遇到了问题。

  1. 我已经在服务器上安装了 GNUPG,它工作得很好,位于/home/myserver/.gnupg
  2. 我已经将 Crypt_GPG 安装到/home/myserver/php/Crypt并编辑了各种文件以具有彼此的绝对链接引用。他们工作正常。
  3. 我已经使用我的服务器 CPanel 创建了一个测试公钥/密钥。密钥生成良好。

这是我的测试代码(保持调试模式)

第一部分代码运行良好 - 检索、显示公钥并显示指纹。

问题出在第二个代码块上——实际上是在尝试加密某些东西。我在调试输出中得到这些错误。我不会发布完整的输出(很大),但我希望这些是重点:

然后:

对我来说,Crypt_GPG 似乎在从 GNUPG 密钥中选择所需内容时遇到问题?它似乎正确地找到了密钥,但它与密码短语有关。这是我的理解和代码的错误,还是因为 CPanel 和 Apache 是不同的用户或什么?

需要一些指导,谢谢;)

0 投票
2 回答
611 浏览

file - 通过 FTP 传输 PGP 文件时出错:底层连接已关闭:接收时发生意外错误

我正在尝试通过 FTP 上传 PGP 加密文件。但我收到如下错误消息:

底层连接已关闭:接收时发生意外错误。

我正在使用以下代码并在行出现错误:

流 ftpStream = response.GetResponse();

有没有人可以尽快帮助我。

以下是代码示例:

问候, 苏梅特