2

После того, как я использовал этот код для шифрования 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 ответ1

7

Ненавижу это говорить, но читаю страницу руководства gpg.

Опция --digest-algo выбирает алгоритм дайджеста сообщения ... для сообщения ... т.е. если вы создаете подпись.

Опция --s2k-digest-algo устанавливает, какой алгоритм используется для хеширования парольных фраз. Если вы установите THAT в sha512, то вы увидите hash 10 в этой строке пакета symkey enc.

В ответ на ваши вопросы в комментариях ниже:

  • Используйте --cipher-algo чтобы указать алгоритм симметричного шифра, используемый для фактического шифрования сообщения.
  • Используйте --digest-algo чтобы указать алгоритм дайджеста, используемый для хеширования сообщения при подписании.
  • Используйте --s2k-digest-algo чтобы указать алгоритм дайджеста, используемый для хеширования парольных фраз в различных операциях (например, симметричная парольная фраза, указанная при использовании -c).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .