gpg - 区别 --encrypt-to 和 --recipient

Ini*_*Ini 5 encryption gnupg

是什么区别--encrypt-to--recipient有什么优点和使用比其他一个缺点,你应该用它来加密自己的文件和哪些呢下面是什么意思?

--encrypt-to ... 仅当存在用户指定的其他收件人或使用选项收件人时,才使用 name 指定的密钥。...

Dav*_*ill 5

--encrypt-to和 和有--recipient什么区别?

概括:

使用--encrypt-to在选项文件中指定的密钥,GPG 会自动将消息和文件加密为您使用--recipient选项指定的收件人的公钥以及您自己的公钥。结果:您和您的收件人都将能够解密文件或消息。

请阅读解释差异的 GPG 手册:

--recipient name

-r

为用户 ID 名称加密。如果此选项或未--hidden-recipient指定,除非--default-recipient给出,否则 GnuPG 会要求提供用户 ID 。

--encrypt-to name

--recipient此相同,但此文件旨在用于选项文件,并且可以与您自己的用户 ID 一起用作“加密自我”。这些密钥仅在存在通过使用--recipient或被询问的用户 ID提供的其他收件人时使用。不会对这些用户 ID 执行信任检查,甚至可以使用禁用的密钥。

使用 GNU Privacy Guard 的源代码:GPG 密钥相关选项


文档不是很详细/示例可能有用

这里有一些更多的解释和一个例子:

“自我加密”

当您使用该--encrypt命令加密文件或消息时,您正在使用其他人的公钥进行加密。奇怪的是,即使您自己加密了文件或消息,您也无法解密该加密文件并访问明文。唯一可以解密文件的人是密钥的所有者,该密钥是用于加密文件的公钥的合作伙伴。这就是非对称公钥加密的本质:您使用公钥加密并使用秘密密钥(私钥)解密。如果您自己不保留纯文本原始文件的副本(出于安全原因,您可能不应该这样做),那么您将面临被锁定在已加密并发送给其他人的文件和消息之外。令人高兴的是,有一个解决方案:--encrypt-to

您可以--encrypt-to在选项文件中包含该选项并指定您自己的公钥。这个选项通常被称为“encrypt-to-self”选项,因为它告诉 GPG 使用您自己的公钥和收件人的公钥加密消息。使用--encrypt-to在选项文件中指定的密钥,GPG 会自动将消息和文件加密为您使用--recipient选项指定的收件人的公钥以及您自己的公钥。结果:您和您的收件人都将能够解密文件或消息。

要使用--encrypt-to选项文件中的选项,请删除前导破折号 ( -- ) 并指定您自己的密钥的密钥 ID。(您可以使用 --list-keys 命令获取自己的密钥 ID。)例如,Bob(其密钥 ID 为 0x3FAD9F1E)可以在其选项文件中包含以下行:

encrypt-to 0x3FAD9F1E
Run Code Online (Sandbox Code Playgroud)

(请注意,即使 Bob 的密钥包含具有单独密钥 ID 的加密子密钥,他也只是将密钥 ID 用作他的主密钥。)

现在 Bob 可以像往常一样向他的朋友 Phil 加密文件...

D:\TEMP>gpg --recipient Phil --encrypt my-file.txt

D:\TEMP>  
Run Code Online (Sandbox Code Playgroud)

...仍然转身并自己解密文件。

D:\TEMP>gpg --decrypt my-file.gpg

You need a passphrase to unlock the secret key for
user: "Bob Bone <bobbone@cowtownu.edu>"
2048-bit ELG-E key, ID AB53B492, created 2001-11-13 (main key ID 3FAD9F1E)

Enter passphrase: My_31337_Passphrase

gpg: encrypted with 2048-bit ELG-E key, ID 42F0A0A0, created 1997-04-07
      "Philip R. Zimmermann <prz@pgp.com>"
gpg: encrypted with 2048-bit ELG-E key, ID AB53B492, created 2001-11-13
      "Bob Bone <bobbone@cowtownu.edu>"

This is my file.

I have many such files.

But this is the file I'm working with now.

D:\TEMP>
Run Code Online (Sandbox Code Playgroud)

GnuPG 命令 - 示例