私がこれを行う必要があるのは初めてです。php cliを使って.pgpファイルを解読する方法
私はcliで動作するようにPHPでスクリプトを記述しなければなりません。スクリプトには解凍する.zipファイルが渡されます。内部のファイルは.pgpファイルであり、これらのファイルを復号化する必要があります。コード。
function decryptPGPFiles($pgpFiles, $passphrase){
$res = gnupg_init();
foreach($pgpFiles as $filename){
gnupg_adddecryptkey($res,"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",$passphrase);
$cipher = file_get_contents($filename);
$plain = gnupg_decrypt($res,$cipher);
var_dump($plain);
die;
}
}
もちろん、 'var_dump($ plain);'と '死ぬ'テスト用です。とにかく$ plainは常にfalseです。 $ pgpFilesは、現在のディレクトリ内の.pgpファイルのファイル名の配列であると仮定します。
私は現在のディレクトリに 'private.gpg'という名前のプライベートキーを持っていますが、私は$パスフレーズも知っています。
私は 'gpg --import private.gpg'を実行し、次に 'gpg --fingerprint'を実行すると、関数 'gnupg_adddecryptkey'の2番目のパラメータがphp.netの$ fingerprintであることを知っています指紋とそれは私がパラメータとして渡しているものですが、とにかく指紋はいくつかの空白スペースで表示され、それらをトリムします。
私は正しい手順を踏んでいないと確信していますが、私には分かりやすい文書はありません。 php cliから.pgpファイルを解読することも可能ですか?
ありがとうございます。
秘密鍵は、スクリプトを実行するために使用されるシステムユーザのGnuPGホームディレクトリにインポートされます(開発およびWebサーバのコンテキストによって異なる場合があります)。 'gpg --list-secret-keys'の結果は、指紋が参照するキーですか? –
'gpg --list-secret-keys'を実行すると、インポートされた秘密鍵が表示されます。とにかく私はそれをあきらめて、あとは 'exec()'を使ってphpのlinuxコマンドラインを使用していました。 – Migdress