我担心我可能发送了一条未加密的消息,而我以为它已经加密并签名了。我很少在 Mac 上使用 OpenPGP(我记不清上次是什么时候了),所以我想了解发生了什么。
首先,我右键单击该文件,然后服务,最后OpenPGP:加密文件. 一个带有标题的窗口漂浮在背景中Encrypting file.txt
:
在选择收件人我选择并突出显示收件人。我还检查了符号:
GPGservice 运行,闪烁一个 Growl 窗口,表示加密已完成,并将文件放在名为的文件系统上file.txt.gpg
。
接下来,我双击file.txt.gpg
. GPGservice 再次运行,闪现一条 Growl 消息,表示解密已完成,并将另一个文件放在名为file 2.txt
.然后我检查file 2.txt
,其为明文消息。
我已经重复了四五次了。前几次是因为不相信,另外两次是为了截屏。我相当确定我描述的是我执行的确切步骤。它也与 GPGTools 支持文章一致如何使用 GPGServices 加密和签名文本或文件?
我怎么可能解密用他人公钥加密的文件?我知道这是不可能的,那么到底发生了什么?
更重要的是,如何在 Mac 上使用 OpenPGP 加密和签名文件?(我不得不问这个愚蠢的问题,因为事情似乎没有像广告或预期的那样运作)。
答案1
我怎么可能解密用他人公钥加密的文件?我知道这是不可能的,那么到底发生了什么?
作为添加到收件人使用您自己的密钥进行检查,该消息不仅对实际收件人进行加密,而且对您自己的密钥进行加密(因此您也可以随后对其进行解密)。
分析 OpenPGP 消息内容的最安全方法可能是进入终端并运行gpg --list-packets [filename]
。对于加密消息,您将看到类似以下几行
:pubkey enc packet: version 3, algo 1, keyid CC73B287A4388025
它们中的每一个都表示一条消息是使用这个公钥加密的,由其密钥 ID 引用。还会有额外的行,不必在意它们(如果你不熟悉,输出结果可能不太容易阅读和理解RFC 4880,OpenPGP)。
更重要的是,如何在 Mac 上使用 OpenPGP 加密和签名文件?(我不得不问这个愚蠢的问题,因为事情似乎没有像广告或预期的那样运作)。
您选择的方法似乎是可行的 - 如果您更喜欢使用命令行,那么等效的方法就是
gpg --recipient [key-id] --output file.txt.gpg --sign --encrypt file.txt