Gnupg ve Crypt_GPG nasıl kullanılır

1 Cevap php

Ben bir istemci sunucu e-posta üzeriçindeden gönderilmek üzere hazır verileri şifrelemek içiçinde Gnupg ve Crypt_GPG kullanmaya çalışıyveyaum ama onu kurma sveyaun yaşıyveyaum.

  1. Ben sunucu üzeriçindede GnuPG yükledim ve gayet güzel çalışıyveya, / home bulunan / myserver / .gnupg
  2. I / home / myserver / php / Crypt içiçindee Crypt_GPG yüklü ve birbirleriçindee mutlak liçindek referansları var çeşitli dosyaları düzenlenebilir ettik. Onlar iyi çalışır.
  3. Ben bir test kamu / gizli anahtar oluşturmak içiçinde benim sunucu CPanel kullveım. Anahtar içindece oluşturulur.

(Hata ayıklama modu sol ile) İşte benim test kodu

<?php
require_once '/home/myserver/php/Crypt/GPG.php';

$gpg = new Crypt_GPG(array('homedir' => '/home/myserver/.gnupg', 'debug' => true));
echo "My public key is: ", $gpg->expveyatPublicKey('içindefo@test.co.uk'), "<br>";
echo "My key fiçindegerpriçindet is: ", $gpg->getFiçindegerpriçindet('içindefo@test.co.uk', Crypt_GPG::FORMAT_CANONICAL), "<br>";

$data = 'Hello, Wveyald!';
$gpg->addSignKey('içindefo@test.co.uk');
$signedData = $gpg->sign($data, Crypt_GPG::SIGN_MODE_CLEAR);
echo "<br><br>Clearsigned message is: ", $signedData, "\n";

?>

Kodun ilk bölümü iyi çalışıyveya - açık anahtar, alınan görüntülenen ve parmak izi de gösterir.

Sveyaun kod ikiçindeci blok ile - aslında bir şey şifrelemek içiçinde çalışıyveyaum. Ben hata ayıklama çıktı bu hataları olsun. Ben tam çıkışı (geniş) post olmaz ama bunlar göze çarpan noktalar şunlardır umut:

Crypt_GPG DEBUG: STATUS: GET_HIDDEN passphrase.enter
Crypt_GPG DEBUG: STATUS: GOT_IT
Crypt_GPG DEBUG: STATUS: MISSING_PASSPHRASE
Crypt_GPG DEBUG: STATUS: BAD_PASSPHRASE EEE2DCBB741D9730
Crypt_GPG DEBUG: STATUS: USERID_HINT EEE2DCBB741D9730 Test Key (Test Key)
Crypt_GPG DEBUG: STATUS: NEED_PASSPHRASE EEE2DCBB741D9730 EEE2DCBB741D9730 17 0
Crypt_GPG DEBUG: STATUS: GET_HIDDEN passphrase.enter
Crypt_GPG DEBUG: => closiçindeg GPG içindeput pipe
Crypt_GPG DEBUG: selectiçindeg streams
Crypt_GPG DEBUG: => got 1
Crypt_GPG DEBUG: GPG is ready fveya commve data
Crypt_GPG DEBUG: => about to write 1 bytes to GPG commve
Crypt_GPG DEBUG: => wrote 1
Crypt_GPG DEBUG: => closiçindeg GPG içindeput pipe
Crypt_GPG DEBUG: selectiçindeg streams
Crypt_GPG DEBUG: => got 1
Crypt_GPG DEBUG: GPG status stream ready fveya readiçindeg
Crypt_GPG DEBUG: => about to read 8192 bytes from GPG status
Crypt_GPG DEBUG: => read 44 bytes
Crypt_GPG DEBUG: STATUS: GOT_IT
Crypt_GPG DEBUG: STATUS: MISSING_PASSPHRASE
Crypt_GPG DEBUG: => closiçindeg GPG içindeput pipe
Crypt_GPG DEBUG: selectiçindeg streams
Crypt_GPG DEBUG: => got 1
Crypt_GPG DEBUG: GPG status stream ready fveya readiçindeg
Crypt_GPG DEBUG: => about to read 8192 bytes from GPG status
Crypt_GPG DEBUG: => read 122 bytes
Crypt_GPG DEBUG: STATUS: BAD_PASSPHRASE EEE2DCBB741D9730

ve daha sonra:

Crypt_GPG DEBUG: END PROCESSING
Crypt_GPG DEBUG: CLOSING SUBPROCESS
Crypt_GPG DEBUG: => subprocess returned an unexpected exit code: 2

Fatal errveya: Uncaught <table bveyader="1" cellspaciçindeg="0"> <tr><td colspan="3" bgcolveya="#ff9999"> <b>Crypt_GPG_BadPassphraseException</b>: Cannot sign data. Incveyvardırct passphrase provided. içinde <b>/home/myserver/php/Crypt/GPG.php</b> on liçindee <b>1054</b></td></tr> <tr><td colspan="3" bgcolveya="#aaaaaa" align="center"><b>Exception trace</b></td></tr> <tr><td align="center" bgcolveya="#cccccc" width="20"><b>#</b></td><td align="center" bgcolveya="#cccccc"><b>Function</b></td><td align="center" bgcolveya="#cccccc"><b>Location</b></td></tr> <tr><td align="center">0</td><td>Crypt_GPG->_sign('Hello, Wveyald!', false, null, 2, true)</td><td>/home/myserver/php/Crypt/GPG.php:1054</td></tr> <tr><td align="center">1</td><td>Crypt_GPG->sign('Hello, Wveyald!', 2)</td><td>/home/myserver/public_html/email.php:7</td></tr> <tr><td align="center">2</td><td>{maiçinde}</td><td>&nbsp;</td></tr> </table> thrown içinde /home/myserver/php/Crypt/GPG.php on liçindee 1837

Crypt_GPG o GnuPG anahtarından ihtiyacı seçerek sveyaunlar yaşıyveya gibi bana görünüyveya? Doğru anahtarı bulmak içiçinde görünür, ancak parola ile düşer. Bu benim anlayış ve kodlu bir hata mı, yoksa CPanel ve Apache farklı kullanıcılar ya da bir şey, çünkü bu?

Rehberlik biraz gerekir, teşekkürler ;)

1 Cevap

examples parolasını belirtmek için nasıl size göstereceğim:

$gpg->addSignKey('test@example.com', 'test');

the documentation Daha fazla örnek için kontrol edin.