使用带有 exec() 的 GPG 加密文件
Encrypt file using GPG with exec()
我正在尝试通过 exec() 使用 GPG 加密文件。我要加密的文件是在 运行 执行此命令之前创建的。
$fesha = date("mdY");
$file_name = "FILE_$fesha.txt";
$myfile = fopen($file_name, "w");
//MySQL query
fwrite($myfile, $txt);
fclose($myfile);
$password = "*password*";
$commando = "gpg --encrypt --passphrase=\"$password\" --armor --batch --yes --trust-model always -r **email@public.key** \"$file_name\"";
echo shell_exec($commando);
echo $commando;
我在观看 "output" 文件夹时 运行 PHP 脚本,创建的文本文件没有任何问题,
但从未创建 asc 文件。
如果我手动 运行 PHP 文件的输出(实际的 GPG 命令),则创建加密文件时没有任何问题或错误消息。
我已经尝试解决这个问题几个小时了。
我尝试使用 class 方法 ($gpg = new gnupg();) 但我无法安装所有 PECL modules/extensions.
任何帮助将不胜感激。
经过数小时的研究,使用更多命令参数反复试验,尝试在服务器端使用权限,尝试将 www-data 用户添加到管理领域,修改 /home/www-data/ 上的权限.gnupg 和 /home/mainuser/.gnupg 文件夹...
我做了一些事情 "dumb" 并发送这个命令 ($commando = "gpg --gen-key";) 看看如果我可以通过 PHP 脚本生成密钥,因为此时我有点弄清楚它与权限有关,而且我无法以 www-data 身份登录到终端。
显然我没有得到交互式响应,但我猜它只是创建了一个空键或其他东西,因为在我再次尝试原始命令后:
$commando = "gpg --encrypt --passphrase=\"$password\" --armor --batch --yes --trust-model always -r email@public.key \"$file_name\"";
果然有效!
服务器创建了文本文件和加密文件。
所以,我不想相信那个愚蠢的东西 ("gpg --gen-key") 实际上 "solved the mystery",我想相信这是我所做的一切的结合。
为了防止其他人遇到此问题,我发现这些文章非常有用。
Using GPG (GnuPG with PHP on Server.
gpg: WARNING: unsafe ownership on homedir /home/user/.gnupg
What are the correct permissions for the .gnupg enclosing folder?
我正在尝试通过 exec() 使用 GPG 加密文件。我要加密的文件是在 运行 执行此命令之前创建的。
$fesha = date("mdY");
$file_name = "FILE_$fesha.txt";
$myfile = fopen($file_name, "w");
//MySQL query
fwrite($myfile, $txt);
fclose($myfile);
$password = "*password*";
$commando = "gpg --encrypt --passphrase=\"$password\" --armor --batch --yes --trust-model always -r **email@public.key** \"$file_name\"";
echo shell_exec($commando);
echo $commando;
我在观看 "output" 文件夹时 运行 PHP 脚本,创建的文本文件没有任何问题, 但从未创建 asc 文件。
如果我手动 运行 PHP 文件的输出(实际的 GPG 命令),则创建加密文件时没有任何问题或错误消息。
我已经尝试解决这个问题几个小时了。
我尝试使用 class 方法 ($gpg = new gnupg();) 但我无法安装所有 PECL modules/extensions.
任何帮助将不胜感激。
经过数小时的研究,使用更多命令参数反复试验,尝试在服务器端使用权限,尝试将 www-data 用户添加到管理领域,修改 /home/www-data/ 上的权限.gnupg 和 /home/mainuser/.gnupg 文件夹...
我做了一些事情 "dumb" 并发送这个命令 ($commando = "gpg --gen-key";) 看看如果我可以通过 PHP 脚本生成密钥,因为此时我有点弄清楚它与权限有关,而且我无法以 www-data 身份登录到终端。
显然我没有得到交互式响应,但我猜它只是创建了一个空键或其他东西,因为在我再次尝试原始命令后:
$commando = "gpg --encrypt --passphrase=\"$password\" --armor --batch --yes --trust-model always -r email@public.key \"$file_name\"";
果然有效! 服务器创建了文本文件和加密文件。
所以,我不想相信那个愚蠢的东西 ("gpg --gen-key") 实际上 "solved the mystery",我想相信这是我所做的一切的结合。
为了防止其他人遇到此问题,我发现这些文章非常有用。
Using GPG (GnuPG with PHP on Server.
gpg: WARNING: unsafe ownership on homedir /home/user/.gnupg
What are the correct permissions for the .gnupg enclosing folder?