在过去一年左右的时间里,我一直在使用 GnuPG,但有一段时间我没有直接从 CLI 加密任何东西。今天我一直在尝试这样做,这是我得到的奇怪输出。无论密钥多么可信,你在 crud 之后添加的任何输入都不起作用。
robotmay@Computer ~> gpg --encrypt --recipient "[email protected]" 09:31:19
gpg: checking the trustdb
gpg: marginals needed: 3 completes needed: 1 trust model: PGP
gpg: depth: 0 valid: 3 signed: 1 trust: 0-, 0q, 0n, 0m, 0f, 3u
gpg: depth: 1 valid: 1 signed: 0 trust: 1-, 0q, 0n, 0m, 0f, 0u
gpg: next trustdb check due at 2018-01-11
�
��|C��<2t�l�c
!%B�~ͼS�C�C��1%f��0�H�����1Ht�6����H3�
Y��
�K*\�����,�i= )c
�*E
$)yN%Pz.f ����l}@ t����$3AڇU���/z�
��:VY���,�@I4w7����C���R�:T�0�r�
ϐL��"�
我也尝试过通过 Keybase 的 GnuPG 集成来加密东西;但似乎总是挂起(可能是因为这种输出)。我上次使用 GnuPG 大概是 2-3 周前通过 Enigmail 使用,效果很好。
答案1
gpg --encrypt
没有任何文件参数,则从 STDIN 加密并输出到 STDOUT。如果没有其他--armor
/-a
选项,GnuPG 将生成二进制 OpenPGP 消息(--armor
将生成众所周知-----BEGIN PGP MESSAGE-----
或类似的输出)。
您看到的不是垃圾,而是以 ASCII 字符解释的加密 OpenPGP 消息元数据的二进制表示。通过添加,| gpg --list-packets
您可以将内容回传到 GnuPG(另一个实例)中,列出 OpenPGP 消息的技术细节。
您要么必须提供一些输入来加密(文件名作为参数或通过 STDIN 管道输入)以便 GnuPG 终止,或者如果您想通过在命令行中输入来提供消息,请按ctrl+终止输入d。