首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP加密有效,但解密无效

PHP加密有效,但解密无效
EN

Stack Overflow用户
提问于 2017-11-14 15:47:39
回答 2查看 1.9K关注 0票数 5

我要用gnupg加密和解密文件。奇怪的是,加密工作正常,但解密总是返回假。

这里有一个简单的php脚本对内容进行加密和解密:

代码语言:javascript
复制
$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 11:amd64 64 1.5.1-6

山核桃( pecl )

包版本状态gnupg 1.4.0稳定

7.1.11-1+0~20171027135825.10+jessie~1.gbp2e638d 版本: PHP

有人已经经历过这个问题了吗?我没有主意了。提前谢谢你。

EN

回答 2

Stack Overflow用户

发布于 2017-11-28 08:53:43

你试过在gnupg_adddecryptkey()之后调用gnupg_adddecryptkey()吗?我怀疑你的私钥并没有被接受。我想它需要在PHP用户的GPG键环中吗?另外,在我运行的几个简短测试中,我一直被提示输入终端上的密码,但这可能是因为我的偏执的gpg配置(我完全禁用密码缓存)。

另一种捕获错误的方法是将gnupg_seterrormode()设置为ERROR_EXCEPTION或类似于查看实际发生的情况.

票数 2
EN

Stack Overflow用户

发布于 2022-05-10 21:25:14

对我来说,问题在于PHP应用程序对密钥文件没有正确的权限。如果您用'gpg‘cli生成键(就像我所做的那样),它会使文件由'root’拥有。因此,我只需要将它们更改为由php应用程序用户拥有。

我需要更新权限的文件夹是{GNUPGHOME}/openpgp-revocs.d和{GNUPGHOME}/私钥-v1.d。

我猜这是/Privy-key-v1.d文件夹,因为您无法解密它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47289876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档