パスワードが対称的に暗号化されたファイルを復号化できることを確認してください。

パスワードが対称的に暗号化されたファイルを復号化できることを確認してください。

CAST5を使用して対称的に暗号化された約20個のファイルがあります。私はすべてのファイルに適用されるパスワードがあり、実際に動作することを確認したいと思います。各ファイルを調べるスクリプトを作成しました。

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

各ファイルのパスワードが有効であることを確認するには、ファイル全体を復号化する必要があります。これは非常に遅いです。私がやりたいことをより早く達成する方法はありますか?

答え1

gpg-agent残念ながら、鍵がパスワードで保護されているかどうか尋ねる方法はありません。ただし、ファイルを確認するのではなく、各キーを一度だけ確認してください。したがって、まずどのキーが関連しているかを確認する必要があります。同じキーを2回確認する必要はありません(両方のファイルを復号化するために使用できます)。

私は自分自身をGnuPGのエキスパートだと思いますが、この作業をエレガントな方法で実行していないので、GnuPGメーリングリストに依頼したことを認める必要があります。そこから情報を入手したら、この回答を編集します。

編集1

マスターには数分しかかかりませんでした...解決策は次のとおりです。--list-only

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

キーIDを通知します。ファイルを復号化する前に、受信者キーの1つが確認済みキーのリストにあることを確認してください。

遅いのは非対称復号化です。それにもかかわらず、最小のものから始めてサイズでファイルをソートする必要があります。

上記のコマンドは、サブキーに対して暗号化されている場合にサブキーを提供します。本当に良い結果を得るには、サブキーを比較せずにその主キーを比較します。すべての一般的なインストールでは、マスターキーとサブキーは同じパスワードを持ちます(GnuPGを使用すると、異なるパスワードを提供する必要があります)。

関連情報