GNUPG和PHP解密失败

时间:2014-05-15 23:52:52

标签: gnupg

我使用以下方法加密字符串:

$gpg = new gnupg();
putenv("GNUPGHOME=/var/www/.gnupg");
$gpg->seterrormode(gnupg::ERROR_EXCEPTION);
$gpg->addencryptkey($fingerprint);
$encrypted =  $gpg->encrypt($data);
echo "Encrypted text: \n<pre>$encrypted</pre>\n";

其输出正常,但我在将此输出解密回字符串时遇到问题。

为了在CLI中解密,我必须使用

gpg-agent --daemon --verbose gpg --homedir /var/www/.gnupg

(如果我不在gpg之前包含gpg-agent的内容,我会收到套接字连接错误)

然后输入我的密码和CTRL + D作为文件末尾,文本字符串被正确解密。

当我使用gnupg_decrypt在php中尝试相同的解密时,我只是解密失败了。有没有我可以做的事情来禁用gpg-agent,因为我已经尝试在conf文件中添加no-agent等但它似乎没有效果,但我认为这可能是问题。

所有文件都设置为与从php文件运行的进程的所有者匹配,并且权限看起来正确,因为除了与gpg-agent的交互之外,其他一切正常。

这个解密需要作为php函数静默发生,因为它构成了隔夜自动更新系统的一部分。

任何帮助都非常感激。

0 个答案:

没有答案