我有一个文件需要解密两次才能获得实际的数据文件。我用来解密文件的命令是:
gpg -o Tesfile.txt -d Testfile.txt.pgp
我读到的是,如果解密文件已签名,则签名也会被验证。-d
选项也会验证和解密文件。但这个特定的文件不会立即解密。
我应该使用什么 gpg 命令来使用单个命令解密文件?
答案1
如果文件是一次性加密和签名的,您也可以一次性解密和验证。在这种情况下,OpenPGP 消息由提供加密层的 OpenPGP 数据包构成,并且在加密容器内,消息被签名:
gpg --recipient [email protected] -o file.gpg --sign --encrypt file
但当然,人们可以先对消息进行签名(例如通过运行gpg --clearsign file
),然后手动加密输出(观察这gpg
称为 twize):
gpg --clearsign file | gpg --recipient [email protected] --encrypt -o file.gpg
在这种情况下,清晰签名的文件(将签名和消息包装在一个文件中,而不是提供单独的签名文件)在第二次运行中被加密,并且所有 OpenPGP 标头都被重复。
您可以通过运行来分析 OpenPGP 消息的结构gpg --list-packets <filename>
,它提供了 OpenPGP 消息的非常技术性的描述,包括所有单独的 OpenPGP 数据包和报头。阅读RFC 4880,OpenPGP将有助于理解输出。