通过Web界面我想检查一个给定的公钥是有效还是无效。 bash命令gpg --import key.pub
回报import successful/failed
基础上,给出的关键,但我不希望使用$data = system("/usr/bin/gpg --import $key)
为我自己安全问题。是否有其他选择吗?
Answer 1:
好吧,我做了一些调试,这是我发现:
nginx的守护程序下运行nginx:nginx
,没有主目录,NOLOGIN壳
当我执行sudo -u nginx php -r "echo system("gpg -k");"
我/home/nginx/.gnupg: directory does not exist!
所以,我执行以下操作:
mkdir -p /home/nginx/.gnupg; chown -R nginx:nginx /home/nginx/
然后,以测试是否工作:
sudo -u nginx php -r "echo system("gpg --homedir /home/nginx/.gnupg --dry-run --batch --import key.pub");
和我有输出!
Answer 2:
正在安装扩展你的选择吗? 因为你可以使用组合gnupg_import()和gnupg_keyinfo()从功能PECL / GnuPG的扩展。
gnupg_keyinfo()
返回的属性阵列和有这将是在这种情况下是有用的各种键。 见: http://svn.php.net/viewvc/pecl/gnupg/trunk/gnupg.c?revision=330955&view=markup#l662
文章来源: Check if GPG/PGP public key is valid