10

簡単に言えば、私の質問は次のとおりです。ファイルの暗号化/復号化時に使用する秘密/公開キーを GnuPG に強制するにはどうすればよいですか?


いくつかの説明/長い話

S3 に送信する前にファイルを暗号化する必要があるアプリケーションがあります。

ユーザーはブラウザを使用して私の Web サイトからファイルをダウンロードできます。その場合、ファイルを提供する前にまずファイルを復号化する必要があります。

クライアント側 ( delphi 2010 ): OpenPGPBlackboxを選択する可能性が最も高い

サーバー側 (PHP 5) では、非対話型コマンドでファイルを暗号化/復号化する方法を理解する必要があります。

サーバーにGnuPGをインストールし、次のコードを試しました:

clear_file='/full/path/my-file.zip'
encrypted_file='/full/path/my-file.zip.pgp'

# Encrypt file
/usr/bin/gpg2 --encrypt "$clear_file"

# Decrypt file
/usr/bin/gpg2 --decrypt "$encrypted_file"

しかし、コマンドラインで使用するキーを指定できないようです。

各ユーザーは独自の公開鍵/秘密鍵を持っているため、問題のファイルの暗号化/復号化に使用する鍵を指定できる必要があります。

私の質問は次のとおりです:ファイルの暗号化/復号化時に使用する秘密/公開キーを GnuPG に強制するにはどうすればよいですか?

4

1 に答える 1

8

探しているオプションは次のとおりです。

--default-key $name$
          Use $name$ as the default key to sign with. If this option is not used, the default key is
          the first key found in the secret keyring.  Note that -u or --local-user overrides  this
          option.
--local-user $name$
   -u     Use  $name$  as  the  key  to sign with. Note that this option overrides --default-key.

またはおそらく:

--recipient $name$
   -r     Encrypt for user id $name$. If this option or --hidden-recipient is not specified, 
          GnuPG asks for the  user-id unless --default-recipient is given.
--default-recipient $name$
          Use  $name$  as default recipient if option --recipient is not used and don't ask if 
          this  is a  valid  one. $name$ must be non-empty.

これらは、署名/暗号化に使用する公開鍵など、意図した受信者を指定するために使用できます。ファイルを復号化するとき、GnuPG は、現在のキーリングに存在する場合は正しいキーを自動的に選択し--keyringます。複数存在する場合は、オプションで選択できます。GnuPG は、必要な鍵が利用可能な場合、鍵サーバーから必要な鍵を取得するように構成することもできます。

--batch実行中にインタラクティブな質問が行われないようにするオプションにも興味があるかもしれません。

GnuPG の man ページを一読することをお勧めします。時々役立つかもしれない多くのオプションがあります。

于 2012-07-02T12:18:17.400 に答える