当使用 GnuPG 清除签名文本时,签名消息中有一个哈希部分。举个例子:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
abc
-----BEGIN PGP SIGNATURE-----
iQEzBAEBCAAdFiEEZZvqE5j3koIxs9Xim0+E4a5Vo2cFAlkRdvQACgkQm0+E4a5V
o2ew2QgAzHuvZ7Hlb6+3qRLjc9Yhdi+6tBmNWXbWpKoAQxpzx6jKQp/FSpQeGWuj
RxcYnqU3pk4ycMLtaCFcfnHEW5N0B95eXGcurgMGz7A6xhy0hy25x8WBdeKVAQ+2
PLA2ytJLUn2L1S3ueqJWcdVUBRaiczOOsYvvO
...
...
-----END PGP SIGNATURE-----
Run Code Online (Sandbox Code Playgroud)
但是对于不同的密钥(或服务器),哈希算法是不同的,有时是 SHA1,有时是 SHA256、SHA512。
是什么决定了这一点,关键还是 GnuPG 客户端?我找不到这方面的信息,当您使用gpgcreate new keys 时,没有指定哈希算法的选项。
更新:为了澄清我的问题,我在下面添加了更多信息。用于生成上面示例输出的命令是:
gpg --clearsign
Run Code Online (Sandbox Code Playgroud)
(gpg 版本在我的系统上是 gpg2。)
然后,我输入了一些随机文本,结果出现在上面。我想知道,如何生成具有特定“哈希:”值的输出?说,SHA1?