使用私钥加密文件,以便只有拥有文件的人知道内容

使用私钥加密文件,以便只有拥有文件的人知道内容

我想在两点之间交换敏感数据,而没有人知道文件内容。 (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.

相关内容