在终端中用 gpg 接收并返回普通文本

在终端中用 gpg 接收并返回普通文本

我制作了一个文本文件:

$ cat sheep.txt

mary had a little lamb

..然后在终端中对其进行加密:

gpg --encrypt --recipient 49673952 sheep.txt

现在有两个绵羊文件:

$ ls -la sheep.*
-rw-r--r-- 1 cardamom cardamom  25 Jun 15 22:02 sheep.txt
-rw-r--r-- 1 cardamom cardamom 622 Jun 15 22:02 sheep.txt.gpg

如果将第二个文件放到屏幕上,您可以看到它更像是一个二进制文件而不是文本文件:

$ cat sheep.txt.gpg

���/�0��JT�H�ߗ�V<��n�2��,on�:] *�{��RU=�j)�8R�8��-؛��)�j�����}��E�X+-c�q龵��!1�qwm"��H�ヲc�Վ;

我希望它更像这样:

-----BEGIN PGP MESSAGE-----

Pef4eu2VSVhhCaGUqvWSdRihyaIbSf8ztJ64e11rzKcgvM+zNAIQYy5ZLoZkGXzG
EExxTuCn0t51DJkEesbb0UVgT0NyWVY9+c2GVIrQMpsET785+dHO2KWTGaAivEfk

-----END PGP MESSAGE-----

如何让 gpg 提供这种输出?实际上,更喜欢将其转储到屏幕上而不是保存在文件中。

第二件方便的事情是如何将明文放入命令而不是文件中,

gpg --encrypt --recipient 49673952 'mary had a little lamb'

..不起作用。实际上,这样做存在一点安全风险,之后删除纯文本文件很重要,并且在开头有一个空格很重要,这样它就不会进入您的历史记录。有时能够做到这一点会很方便,不确定我是否总是会因为风险而这样做,但我问的主要问题是如何让 gpg 为您提供其他类型的输出,如果可能的话在终端上而不是在一个文件中。

更新:

我认为这与此有关:

https://stackoverflow.com/questions/1306865/what-are-the-standard-encryption-file-formats

..仅使用 gpg 可能是不可能的,但 gpg 的输出可能需要通过管道传输到某些东西中。

答案1

我已经解决了:

gpg --output - --encrypt --armor --recipient 49673952 <(echo "$mary had a little lamb")

--output -根据以下内容将其转储到 STDOUT文档并且不将任何文件写入磁盘。

然后最后一位避免从文件中读取,尽管如上所述,如果它进入历史记录,则会存在安全风险

相关内容