2012-07-02 11 views
6

短くて、私の質問は:ファイルを暗号化/復号化する際に、私/公開鍵で使用するGnuPGを強制的に強制することはできますか?GnuPG:特定のキーを使ってファイルを暗号化/復号化する方法は?


いくつかの説明/ロング物語

私はS3にファイルを送る前に、ファイルを暗号化しなければならないアプリケーションがあります。

ユーザーは自分のウェブサイトのブラウザを使用してファイルをダウンロードすることができます。その場合、ファイルを配信する前にまずファイルを復号化する必要があります。

クライアント側(デルファイ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を強制することができますか?これらは、例えば、目的の受信者が誰であるかを指定するために使用することができます

--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. 

答えて

7

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

--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. 

または可能性署名/暗号化に使用する公開鍵。ファイルを解読するとき、GnuPGは現在の鍵リングに存在する場合、正しい鍵を自動的に選択します。これは、--keyringオプションで選択することができます。 GnuPGは鍵サーバーから必要なキーを取得できるように設定することもできます。

また、--batchというオプションに興味があるかもしれません。これは、実行中に対話的な質問がないことを確認します。

GnuPGのマニュアルページを読むことをお勧めします。今や便利なオプションがたくさんあります。

+0

ありがとう、はい、私はマニュアルページを読んでいます(そして、**は迷ってしまった**)。私はこのコマンドを試しました: '/ usr/bin/gpg2 -v --decrypt --default-key" private-1.pgp/full/home/my-file.7z.pgp'しかし、私は 'gpg:publicキーは745ECDED gpg:RSA鍵で暗号化、ID 745ECDED gpg:復号化に失敗しました:秘密鍵がありません。前もって感謝します! – TheDude

+0

私も '--local-user'スイッチを使い、秘密鍵ファイルのフルパスを使用しましたが、助けにはなりませんでした。 – TheDude

+1

鍵がキーリングに見つからないことがあります。あなたがそのように鍵を与えることができるかどうかは完全にはわかりません。最初に 'gpg --allow-secret-key-import --import private-1.pgp'でキーリングをインポートし、' gpg --decrypt my-file.7z.pgp'を使って解読してみてください。これがうまくいかない場合は、phpではなくコマンドラインからテストして、環境変数などの問題を排除してください。その他のオプションは、キーファイルに問題があるということです。 – Edu

関連する問題