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

У меня около двадцати файлов, симметрично зашифрованных 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 вам даже придется сражаться, чтобы дать им разные фразы).

  • У меня есть несколько копий .bash_profile, какой из них действительно используется? (если есть)
  • Сохранять коды выхода при захвате SIGINT и тому подобное?
  • Отключить логин для useradd
  • grep: Синтаксическая ошибка возле неожиданного токена `('
  • поиск содержимого файлов, упакованных в zip-файл
  • Может ли оболочка предупредить меня, если программа ждет стандартного ввода?
  • Как получить двоичные представления строк в Shell?
  • У вас есть сценарий bash для ожидания пароля
  • исходный файл в качестве аргумента?
  • Почему число округлено по ssh?
  • Не удается открыть терминал из-за настроек
  • Linux и Unix - лучшая ОС в мире.