我想知道如何通过在命令行中传递密码/密钥来解密文件。如何通过在使用PHP的命令中传递“gpg密码”来解密加密文件?
我试过使用这个,但它仍然给我提示输入密码。回声shell_exec(“echo $ passphrase | gpg --passphrase-fd 0 -o $ unencrypted_file -d $ encrypted_file”);回到顶端这篇文章中的信息适用于:
我的目标是在PHP中创建一个可以自动解密文件的程序。
我想知道如何通过在命令行中传递密码/密钥来解密文件。如何通过在使用PHP的命令中传递“gpg密码”来解密加密文件?
我试过使用这个,但它仍然给我提示输入密码。回声shell_exec(“echo $ passphrase | gpg --passphrase-fd 0 -o $ unencrypted_file -d $ encrypted_file”);回到顶端这篇文章中的信息适用于:
我的目标是在PHP中创建一个可以自动解密文件的程序。
你或许应该使用php functions,而不是分叉GPG
我不知道GPG开发者同时使用,以防止有什么办法。但作为替代方案,您可以使用此PHP模块:http://pecl.php.net/package/gnupg来处理解密。又见http://php.net/gnupg
gpg --passphrase-file $file
人GPG说:“从文件中读取文件的密码只有第一行会从文件文件中读取如果只有一个密码提供这只能使用很明显。 ,如果其他用户可以读取此文件,则存储在文件中的密码短语的安全性可疑,如果可以避免,请不要使用此选项。
一个稍微安全的变化就是将gpg-agent的缓存时间设置为荒谬的(如一个月或更长的时间,它需要设置秒数),然后每月输入密码(或者周期)加上每次重新启动后。至少,gpg-agent和pinentry会像通常那样保护密码(尽管受到危害的无人看管系统容易受到RAM攻击以获取密码或解密的密钥数据)。 – Ben