我很难找到双引号的替代品来解密文件密码:
gpg --passphrase-file "this is a sentence passphrase"} --batch -d --output myfile.txt myfile.gpg
我正在编写一个程序来包装 gpg interactino 并且使用双引号把它弄乱了(我无法删除 escape \" 但这不是问题......)
当密码短语是带有空格字符的句子时,有没有办法用其他内容替换双引号?
谢谢
答案1
您有两个选择,要么使用单引号'passphrase"withquotes'
(但您不再允许在密码中使用单引号)。或者,您必须逃脱引号字符(和其他具有特殊含义的字符)"passphrase\"withquotes"
:。
您解释说您正在编写一些需要密码处理的程序。所有合理的编程语言都应该有一些函数或库,它们为 bash 转义提供了现成的函数。
无论如何,你应该切勿将密码作为参数传递(无论如何,您使用了错误的参数,请查看--passphrase...
GnuPG 手册页中的选项):系统上的所有其他用户都可以读取所有进程的命令行,包括秘密密码!相反,使用--passphrase-fd 0
并将您的应用程序附加到 GnuPG 的 STDIN(就像您在命令行上使用管道一样),并将密码作为输入传递。
使用 GnuPG 2.1 及更高版本,您无法--passphrase...
再轻松使用这些选项。请查看“为什么 GPGME / GnuPG 使用 pinentry 来输入密码?”以供进一步讨论。