【发布时间】:2016-06-12 20:02:19
【问题描述】:
我正在尝试用 PHP 中的 PGP(gnupg) 解密一条简单的消息。
但我总是收到这个错误:get_key failed。
在堆栈溢出上,我看到很多人遇到这个问题,但我无法解决它。
我遵循了本教程,其中包括如何设置文件的权限:http://46dogs.blogspot.nl/2007/11/setting-up-gnupg-gpg-for-use-with-php.html
这是我正在使用的脚本。我的 PGP 密钥不包含阶段短语:
<?php
putenv("GNUPGHOME=/home/user/.gnupg/");
$gpg = new gnupg();
$gpg -> addencryptkey("2ADA21BDC9C96556EA0758F04A935AE0010AE203");
$encrypted_text = $gpg -> encrypt("just a test");
//echo $encrypted_text;
$gpg = new gnupg();
$gpg->seterrormode(gnupg::ERROR_EXCEPTION);
try{
$gpg -> adddecryptkey("2ADA21BDC9C96556EA0758F04A935AE0010AE203","");
$decrypted_text = $gpg -> decrypt($encrypted_text);
} catch (Exception $e) {
echo $e;
}
echo $decrypted_text;
?>
文件(pubring.gpg、trustdb.gpg 和 secring.gpg)的权限与教程完全相同(仅用户更改为 nginx)。
加密部分起作用。但是解密不起作用。
有谁知道怎么回事?
我正在运行 Centos 和 php5。
【问题讨论】:
-
嗨!你想通了吗?我也面临同样的问题。
-
@Harsh 我放弃了...
-
虽然使用 PHP7 和 Alpine Linux(在 Docker 内部),但我也遇到了这个问题
标签: php encryption nginx centos