我制作了一个文本文件:
$ 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文档并且不将任何文件写入磁盘。
然后最后一位避免从文件中读取,尽管如上所述,如果它进入历史记录,则会存在安全风险