我想在两点之间交换敏感数据,而没有人知道文件内容。 (ISP、管理员等)除了持有私钥的人之外没有人。
命令行解决方案会很棒。我们都在我们的机器上拥有私钥,这些私钥已经在本地创建,而不是通过互联网进行交换。
答案1
gpg --local-user [fingerprint] --recipient [fingerprint] --encrypt-files [anyfile(s)]
请注意,默认情况下,这会使用一些压缩,要完全禁用它,您可以从以下开始:
gpg --compress-algo none
--throw-keyids
此外,您可以通过在手册页中指定 , 来防止用户识别您的身份:
请勿将收件人密钥 ID 放入加密邮件中。这有助于隐藏消息的接收者,并且是针对流量分析的有限对策。2在接收方,它可能会减慢解密过程,因为必须尝试所有可用的密钥。
结论
关闭压缩对于大文件特别有用,您可以执行类似的操作,这对于支持 AES-NI 指令集的大多数系统非常有用,由您的密钥加密,只能通过您的密钥bash
别名解密:
gpg_fingerprint='0000...FFFF'
alias encrypt="gpg \
--compress-algo none \
--cipher-algo aes256 \
--digest-algo sha512 \
--local-user \$gpg_fingerprint \
--recipient \$gpg_fingerprint \
--encrypt-files "
笔记:
该
bash
别名已准备好写入您的.bash_aliases
文件中。如果您没有,请创建一个,以分隔别名。\$gpg_fingerprint
与 不同$gpg_fingerprint
,但取决于您的用例,如果在运行时测试并设置该变量,请使用\$gpg_fingerprint
;相反,如果您已完成测试并想要对其进行硬编码,则可以使用$gpg_fingerprint
.