我正在使用gnupg php函数来解密文件。
在这里的另一篇文章的帮助下,我设法通过使用gnupg_keyinfo
并更改gnupg目录的所有者和chmod权限来列出密钥(gnupg_import
)。
我还可以使用gnupg_encrypt
成功加密文件。
但是,当使用gnupg_decrypt
解密文件时,它不会处理以下错误消息:
Warning: gnupg::adddecryptkey(): get_key failed
这是我用来加密然后解密文件的代码:
$CONFIG['gnupg_home'] = '{{PATH}}';
$CONFIG['gnupg_fingerprint'] = '{{FINGERPRINT}}';
$data = 'Info to encrypt/decrypt';
$gpg = new gnupg();
putenv("GNUPGHOME={$CONFIG['gnupg_home']}");
$gpg->seterrormode(GNUPG_ERROR_WARNING);
$gpg->addencryptkey($CONFIG['gnupg_fingerprint']);
$encrypted = $gpg->encrypt($data);
echo "Encrypted text: \n<pre>$encrypted</pre>\n";
$plain_text = '';
$passphrase = '';
$gpg->adddecryptkey($CONFIG['gnupg_fingerprint'], $passphrase);
$decrypted = $gpg->decrypt($encrypted);
echo "Decrypted text: $decrypted";
我用密码短语尝试了它并且它没有工作,然后读到它不再使用密码短语,所以我没有使用密码短语。
我有chmod 700到〜/ .gnupg和chmod 600到〜/ .gnupg / *
gnupghome的路径是正确的,因为它与我用于gnupg_keyinfo
的路径相同,并且有2个指纹从它返回,我已经尝试过它们。
我用谷歌搜索过,我看到有同样问题的人但找不到问题的答案。
谢谢