1

私は pgp の問題で完全に立ち往生していますが、それは技術的な問題というよりも論理的な問題だと思います - とにかく、私はそれを理解していません。

目標は、gpg4win (www.gpg4win.de/index.html) でファイルを暗号化し、PHP (gnupg) で復号化することです。

まず、gpg4win で証明書を作成し、パスフレーズを設定して、単純なテキスト ファイル (ASCII) を暗号化しました。次に、ファイルをアップロードし、次のコードで復号化を試みました。

$content = file_get_contents("some-test-data.asc");
$gpg = new gnupg();
$gpg -> adddecryptkey("MYFINGERPRINT","my.pass.phrase");
$plain = $gpg -> decrypt($content);
var_dump($plain);

結果は: bool(false)

私が間違っていることは何ですか?さまざまなコードと提案を試しましたが、常に bool(false) になりました。

これらの方法は互換性がありませんか? 別のアプリケーションを使用する必要がありますか?

私が得ることができるすべての小さな助けに感謝します. どうもありがとう!

PS PHP は gnupg GPGme Version 1.4.2 Extension Version 1.3.3-dev でコンパイルされています

4

1 に答える 1

1

問題が解決しました。誰かが同じ問題に遭遇した場合、それは PHP ドキュメントの遅れが原因です:

文字列 gnupg_decrypt (リソース $identifier 、文字列 $text )

コメント セクションに次のコメントが見つかった場合: gnupg バージョン 2 以降、プレーン パスワードを渡すことはできなくなりました。パラメータは単に無視されます。代わりに、cli モードで実行されている php の場合、pinentry アプリケーションが起動されます。cgi または apache モードでは、キーを開くことができません。最も簡単な解決策は、パスワードなしでキーを使用することです。

したがって、パスワードなしで新しいキーを作成しましたが、すべて正常に機能します。

于 2013-07-26T12:33:43.153 に答える