-1

Gnupg 允许将二进制密钥转换为纯文本 ASCII。这是如何运作的?这显然不像获取 7 位块并将它们映射到 ASCII 字符那么简单:

user@T60:~/.gnupg> xxd -b secring.gpg | sed 's/[[:xdigit:]]*: //;s/.\{8\}$//;s/ //g' | head -3
100101010000001110111110000001000101000111101001
010011011001011000000001000010000000000011101100
000011001010111010000001101010000001100111111010
user@T60:~/.gnupg> gpg --armor --output - --export 'Test' | head -5
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2.0.18 (GNU/Linux)

mQENBFHpTZYBCADsDK6BqBn6rqwtEC66Po/8XCEcObCjCfhSVk3iuj4MVfted7eq
1x0sUfPs0ORVQJTiXDJ7mzzMhYIHYP4e8njObiT4B+TRas48toEnDS3605wDp9yX
user@T60:~/.gnupg> 

有人可以根据我的二进制流解释这个吗?

4

1 回答 1

0

我在最初的问题中犯了一个错误。我应该使用“pubring.gpg”作为xxd不是“secring.gpg”的输入。gpg 使用的二进制到文本编码是 Base64。这意味着 24 个第一位将是 100101(dec 37)、010000(dec 16)、001110(dec 14) 和 111110(dec 62),它们将编码为“l”、“Q”、“O”和“+” ' 因此。很抱歉在最初的问题中提供了错误的信息。

于 2013-07-29T22:44:52.640 回答