Проверка того, может ли парольная фраза расшифровывать симметрично зашифрованные файлы

У меня около двадцати файлов, симметрично зашифрованных CAST5. У меня есть одна кодовая фраза, предназначенная для работы со всеми файлами, и я хочу подтвердить, что это так. Я написал сценарий для проверки проверки каждого файла.

read pass for file in *.gpg ; do if ! gpg --batch --passphrase "$pass" -d "$file" &>/dev/null ; then echo "Passphrase invalid for '$file'." fi done 

Мой метод проверки того, действительно ли парольная фраза действительна для каждого файла, требует дешифрования всего файла, что очень медленно. Есть ли более быстрый способ сделать то, что я пытаюсь сделать?

One Solution collect form web for “Проверка того, может ли парольная фраза расшифровывать симметрично зашифрованные файлы”

К сожалению, нет способа спросить gpg-agent , является ли ключ защищенной парольной фразой. Но вам не нужно проверять файлы, но каждый раз один раз. Таким образом, вы должны сначала проверить, какие ключи задействованы. Нет необходимости проверять один и тот же ключ дважды (используя его для дешифрования двух файлов).

Я должен признать, что, хотя я считаю себя экспертом GnuPG, я не делаю это так элегантно, поэтому я только что спросил в списке рассылки GnuPG. Я отредактирую этот ответ, когда у меня будет информация оттуда.

Редактировать 1

Взял мастеров всего несколько минут … Решение: --list-only

 gpg --status-fd 1 --list-only --list-packets file.gpg | awk '$2 == "ENC_TO" {print "0x" $3; }' 

дает вам идентификаторы ключей. Прежде чем пытаться расшифровать файл, вы проверяете, находится ли один из его ключей получателя в списке ключей, которые вы уже проверили.

Медленная операция – это асимметричное дешифрование. Тем не менее вы должны сортировать файлы по размеру и начинать с самого маленького.

Вышеприведенная команда дает вам подраздел (если он был зашифрован для подраздела). Если вы хотите быть действительно хорошими, вы не сравниваете подразделы, а соответствующие основные ключи. В каждой нормальной установке главный ключ и подразделы имеют одну и ту же кодовую фразу (с GnuPG вам даже придется сражаться, чтобы дать им разные фразы).

  • команда `read` не работает в Makefile
  • удалять содержимое каталога элегантным способом
  • Понимание backtick (`)
  • Просмотр истории bash отдельного активного TTY
  • В чем разница между этими четырьмя командами (fifo, замещение процесса, перенаправление ...)
  • Псевдоним, похоже, не читается из STDIN
  • Изменение числа в строке чисел
  • Как сделать grep на удаленном компьютере и распечатать строку, содержащую эти слова?
  • Sh Script с использованием ftp для размещения списка файлов
  • Получить путь к текущему скрипту при выполнении через символическую ссылку
  • Пропустить входной файл через трубу в качестве аргумента?
  • Linux и Unix - лучшая ОС в мире.