【发布时间】:2017-11-14 15:47:39
【问题描述】:
我即将使用 gnupg 来加密和解密文件。奇怪的是,加密工作正常,但解密总是返回 false。
这里有一个简单的php脚本加密和解密内容:
$content = 'test text';
putenv("GNUPGHOME=/PATH_TO_GPG_PATH");
$gpg = new gnupg();
$gpg->addencryptkey("FINGERPRINT");
$enc = $gpg->encrypt($content);
var_dump($enc);
$gpgD = new gnupg();
$gpgD->adddecryptkey("FINGERPRINT","PASSPHRASE");
$plain = $gpgD->decrypt($enc);
var_dump($plain);
版本
Debian 软件包
gpgv 1.4.18-7
libgpgme11:amd64 1.5.1-6
pecl
包版本状态 gnupg 1.4.0 稳定版
PHP版本: PHP 7.1.11-1+0~20171027135825.10+jessie~1.gbp2e638d
有人遇到过这个问题吗?我没主意了。 提前谢谢你。
【问题讨论】:
-
gnupg_geterror返回什么? -
解密失败,仅此而已。我通过 shell_exec() 使用普通的解密命令做了一个解决方法。想知道为什么普通解密适用于基于 php 的加密方法。 :-/
-
你试过没有密码的钥匙吗?在 gnupg > v2.0.0 中,默认情况下不可能在 Web 服务器中使用密码。密码请求被提示到控制台,因此它不起作用。看看手册中Mike的评论
标签: php encryption gnupg gpgme