【发布时间】:2020-02-17 21:45:03
【问题描述】:
我正在尝试通过 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;
我在查看“输出”文件夹的同时运行 PHP 脚本,创建的文本文件没有任何问题, 但永远不会创建 asc 文件。
如果我手动运行 PHP 文件的输出(实际的 GPG 命令),则创建的加密文件没有任何问题或错误消息。
我已经尝试解决这个问题几个小时了。
我尝试使用类方法 ($gpg = new gnupg();),但无法安装所有 PECL 模块/扩展。
任何帮助将不胜感激。
【问题讨论】:
-
您是否尝试过使用
pass_thru()? -- php.net/manual/en/function.passthru.php -
刚试了,还是不行... :(