gpg 即使使用 --digest-algo SHA512 也使用 sha1 吗?

gpg 即使使用 --digest-algo SHA512 也使用 sha1 吗?

当我用此代码加密 gpg.txt 后

$ gpg -c --cipher-algo AES256 --digest-algo SHA512 "GPG.txt"

我检查了结果,看它是否使用 AES256 加密并使用 SHA512 进行哈希处理

$ gpg --list-packets GPG.txt.gpg
symkey enc packet: version 4, cipher 9, s2k 3, ***hash 2***
gpg: AES256 encrypted data

我发现 Cipher=9(正如我所要求的那样,是 AES256),但是 Hash=2(代表 SHA1)而不是我想要的 10=SHA512!

为什么会发生这种情况?有人知道如何强制 gpg 使用 SHA512 而不是 SHA1 吗?

答案1

我不想这么说,但是阅读 gpg 手册页。

--digest-algo选项为消息选择消息摘要算法...即,如果您创建签名。

--s2k-digest-algo选项设置使用什么算法来散列密码。如果你设置hash 10到 sha512,然后您将在该 symkey enc 数据包行上看到。

回答您在下面评论中提出的问题:

  • 用于--cipher-algo指定实际加密消息所用的对称密码算法。
  • 用于--digest-algo指定签名时对消息进行哈希处理的摘要算法。
  • 用于--s2k-digest-algo指定在各种操作中对密码进行散列所使用的摘要算法(例如,使用时指定的对称密码-c)。

相关内容