短くて、私の質問は:ファイルを暗号化/復号化する際に、私/公開鍵で使用する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.
:
ありがとう、はい、私はマニュアルページを読んでいます(そして、**は迷ってしまった**)。私はこのコマンドを試しました: '/ 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
私も '--local-user'スイッチを使い、秘密鍵ファイルのフルパスを使用しましたが、助けにはなりませんでした。 – TheDude
鍵がキーリングに見つからないことがあります。あなたがそのように鍵を与えることができるかどうかは完全にはわかりません。最初に 'gpg --allow-secret-key-import --import private-1.pgp'でキーリングをインポートし、' gpg --decrypt my-file.7z.pgp'を使って解読してみてください。これがうまくいかない場合は、phpではなくコマンドラインからテストして、環境変数などの問題を排除してください。その他のオプションは、キーファイルに問題があるということです。 – Edu