在 GPG Decrypt 中,对于 PassPhrase 的双引号我有哪些选项?

在 GPG Decrypt 中,对于 PassPhrase 的双引号我有哪些选项?

我很难找到双引号的替代品来解密文件密码:

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 来输入密码?”以供进一步讨论。

相关内容