2017-12-08 49 views
0

私は解読する必要がある 'filename.txt.pgp'という名前のPGPファイルを持っています。コマンドラインから復号化を実行すると、パスワードだけを要求します。私はgpgコマンドを使用します:PGPで暗号化されたファイルをJavaでのみパスフレーズで解読する

gpg filename.txt.pgp 

パスワードは十分であり、私のファイルは復号化されます。私はその内容を読むことができます。

ここで、Javaでユーティリティを作成する必要があります。研究の後、Bouncy Castleの図書館が私の最高の選択だと分かります。しかし、私はJavaのすべての例私は私が持っていない公開/秘密鍵ファイルを使用して見つけることができます。

パスワードだけでPGPファイルを復号するJavaの例を教えてください。

ありがとうございます。

+0

PGPは公開鍵/秘密鍵を含むキーリングの概念を使用します。パスワードを使用して(Bouncy Castle API経由で)キーリングにアクセスし、関連するキーをBouncy Castle API経由で取得し、最後にBouncy Castle APIを使用してファイルの復号化と復号化を行います。 Googleでは、https://stackoverflow.com/questions/6987699/pgp-encryption-and-decryption-using-bouncycastle-c-sharpなど、多くの例が得られます。 – Rob

+0

私はFTPからファイルを受信して​​います。私はただのパスワードを知っています。私はキーリングを持っていません。だから私は公開鍵/秘密鍵を持っていません。パスワードを自分の公開鍵にすることはできますか? – Igor

+0

pgpファイルを解読すると、相手に公開鍵を渡したことと、自分の秘密鍵が鍵リングに入っていることになります(これがコマンドラインツールがパスワードだけで動作する理由です)。ホームディレクトリで ".gnupg"というディレクトリを探します。これはgpgがキーリングを保存するデフォルトの場所です。 – Rob

答えて

1

Bouncy Castleのサイトのドキュメントのセクションを見ると、「パッケージ内のテストプログラムを見てください...」と言われています。彼らは冗談を言っていません。

Bouncy Castleからjarファイルを見ると、ディレクトリの下に、ライブラリを使用するときのパスワードベースの暗号化をカバーするクラスファイル"PBEFileProcessor"が表示されます。

Githubレポの同じファイルには、linkがあります。

関連する問題