gpg 和 apt-key 中公钥的 keyid 和指纹是什么?

Tim*_*Tim 3 gpg apt-key

https://superuser.com/a/931814/

下面是使用 GnuPG 包的命令接收带有指纹的gpg密钥 ( ) 的示例命令:-recv-keys7CE8FC69BE118222

$ gpg --recv-keys 7CE8FC69BE118222
Run Code Online (Sandbox Code Playgroud)

钥匙和指纹是不同的概念吗?

来自以下的联机帮助页apt-key

apt-key export <keyid>

将密钥输出keyid到标准输出。

key和它有keyid不同的概念吗?

钥匙和指纹是keyid同一个概念吗?

例如,我们可以首先检索密钥

$ gpg --recv-keys 7CE8FC69BE118222
Run Code Online (Sandbox Code Playgroud)

然后将其apt-key喂给

gpg --keyserver keyserver.ubuntu.com --recv-key E298A3A825C0D65DFD57CBB651716619E084DAB9
Run Code Online (Sandbox Code Playgroud)

E298A3A825C0D65DFD57CBB651716619E084DAB9钥匙、keyid钥匙的指纹还是钥匙的指纹?

为什么我替换为E298A3A825C0D65DFD57CBB651716619E084DAB9后它仍然有效51716619E084DAB9

Ste*_*itt 7

GnuPG的答案:密钥 ID 和指纹的表示解释了密钥 id 和指纹之间的差异。密钥 ID 和指纹是密钥(的一部分)散列,因此它们与密钥不同。

\n\n

让\xe2\x80\x99s以我的一个公钥为例;二进制格式的最小导出长度不到 4KiB,并且 \xe2\x80\x99 是整个密钥(不带签名)。那\xe2\x80\x99s相当笨重,所以我的密钥是通过它的指纹识别的:

\n\n
7196 E081 94D5 3FCB FD15  D960 FA6C 71F9 A73D BE0B\n
Run Code Online (Sandbox Code Playgroud)\n\n

\xe2\x80\x99 是我的密钥的可靠标识符。

\n\n

密钥 ID 更短;\xe2\x80\x9clong\xe2\x80\x9d 密钥 ID 是

\n\n
0xFA6C71F9A73DBE0B\n
Run Code Online (Sandbox Code Playgroud)\n\n

(指纹的最后八个字节),\xe2\x80\x9cshort\xe2\x80\x9d 密钥 ID 为

\n\n
0xA73DBE0B\n
Run Code Online (Sandbox Code Playgroud)\n\n

现在,这些都不应该用于密钥识别 \xe2\x80\x94 可以创建具有匹配密钥 id 的密钥(这已通过短密钥 id 进行了演示)。

\n