繁体   English   中英

要在php 7中使用gpg发送加密的消息,需要输入密码

[英]To send encrypted messages with gpg in php 7 it ask for password

我们最近切换到Ubuntu 16.04,那里有php 7.0

不,我遇到了我们的php脚本问题,该脚本使用成熟的邮件界面更新了成熟并向他们发送GPG签名的邮件,以供他们用于身份验证。 但是现在php cli开始提示输入要与密钥一起使用的密码。 我如何防止这个密码短语问题,我试图从密钥中删除密码短语,但这无济于事。

我的PHP代码看起来像这样:

$gpgkey = "some thubprint of a key";
$gpgpwd = "Secret";
$res = gnupg_init();
gnupg_addsignkey($res,$gpgkey,$gpgpwd);
$updatemessages = "test";
$signedupdatemessages = gnupg_sign($res, $updatemessages);

希望有人知道解决方法

亲切的问候,

巴斯范登迪肯伯格

Ubuntu 16.04发行了一个较新的GnuPG版本,该版本不允许设置密码而不进行麻烦。 这是因为相当大的GnuPG应用程序(因此容易出现安全问题)应该不能访问私钥和密码短语,因此这些操作将提取到较小的gpg-agent (现在正在查询密码短语)。

删除密码短语/将其设置为空应该可以正常工作,请确保为适当的用户设置密码短语(GnuPG具有按系统用户的密钥库)。

设置密码短语的“ GnuPG-2.0方式” 使用gpg-preset-passphrase实用程序 ,该实用程序通常安装在/usr/lib/gnupg2/gpg-preset-passphrase用于Debian和派生发行版。 您需要通过在~/.gnupg/gpg-agent.conf添加allow-preset-passphrase来允许此操作,然后运行

/usr/lib/gnupg2/gpg-preset-passphrase -c [keygrip]

同时提供对标准输入密码( 使用echo-P选项,使用这两种方式的所有其他系统的用户可以读取密码!)。 可以通过运行gpg2 --with-keygrip --list-secret-keys

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM