繁体   English   中英

使用gpg4win加密后,使用PHP gnupg解密文件

[英]decrypt file with PHP gnupg after encrypting using gpg4win

我完全陷入了pgp问题,但我想这比技术问题更合乎逻辑-无论如何,我不明白。

目标是使用gpg4win(www.gpg4win.de/index.html)加密文件,然后使用PHP(gnupg)解密文件。

我做的第一件事是,我用gpg4win创建了一个证书,设置了密码,并对一个简单的文本文件(ASCII)进行了加密。 然后,我上传文件并尝试使用以下代码对其解密:

$content = file_get_contents("some-test-data.asc");
$gpg = new gnupg();
$gpg -> adddecryptkey("MYFINGERPRINT","my.pass.phrase");
$plain = $gpg -> decrypt($content);
var_dump($plain);

结果是:bool(false)

我做错了什么? 我尝试了不同的代码和建议,但始终以bool(false)结尾。

这些方法不兼容吗,我必须使用其他应用程序吗?

我感谢我能得到的每一个小帮助。 非常感谢!

PS PHP使用gnupg GPGme版本1.4.2扩展版本1.3.3-dev进行编译

问题解决了。 如果有人遇到同样的麻烦,那是由于PHP文档中的滞后:

字符串gnupg_decrypt(资源$ identifier,字符串$ text)

如果在注释部分中找到以下注释:从gnupg版本2开始,将无法再传递普通密码。 该参数将被忽略。 相反,如果php以cli模式运行,则会启动pinentry应用程序。 在cgi或apache模式下,打开密钥将失败。 最简单的解决方案是使用不带密码的密钥。

因此,我创建了一个没有密码的新密钥,并且一切正常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM