PHP 的 GnuPG keyinfo 函数显示空数组

PHP's GnuPG keyinfo function shows empty array

我需要使用 gnupg_decrypt 来解密正在发送给我们但无法正常工作的文件。

当我使用 gnupg_keyinfo 列出所有 public 键时,它 returns 是一个空数组。有谁知道为什么会这样吗?

我使用的代码是:

$res = gnupg_init();
$info = gnupg_keyinfo($res, '');
print_r($info);

查看上面 link 的注释,将 '' 作为模式,它应该列出所有键。

我已经使用此处提供的信息在我的服务器上设置了一个 public 密钥 http://irtfweb.ifa.hawaii.edu/~lockhart/gpg/gpg-cs.html

当我 运行 gpg --list-keys 它显示它已成功创建。

我在某处读到你必须放

putenv('GNUPGHOME=/tmp');

在页面顶部以使其正常工作,但没有引用该文件夹中的密钥,我无法找到使用上述设置的位置。

我还读到我可能没有权限访问存储密钥的文件夹,但我还是不确定它在哪里。

有人可以帮忙吗?

谢谢


为了让这项工作正常进行,我做了以下工作

chown -R {{user}} ~/.gnupg chmod 600 ~/.gnupg/* chmod 700 ~/.gnupg

然后使用gnupg_import函数重新导入密钥

GnuPG 有每个用户的密钥环。您的网络服务器不会运行 root 用户(如果是,请立即更改),因此您必须分析网络服务器的用户并在该用户下导入密钥帐户(通常称为 www-data 或类似名称,您也可以将其 su 加入)。或者,import the key through a PHP script.