Как вы используете библиотеку PHP OpenPGP?

Существует порт расширения PHP библиотеки gnupg PGP. Однако мне трудно найти примеры , объясняющие, как использовать библиотеку.

Как правильно создавать ключи для пользователей приложений, а затем использовать их для шифрования / дешифрования текста с помощью библиотеки GnuPG?

    См. Этот URL, это очень помогает вам. Загрузите пример и попробуйте.

    https://github.com/singpolyma/openpgp-php

    Или попробуйте: –

    Вы можете скачать файлы lib / openpgp.php и lib / openpgp_crypt_rsa.php выше URL.

    примеры / keygen.php

    <?php require dirname(__FILE__).'/../lib/openpgp.php'; require dirname(__FILE__).'/../lib/openpgp_crypt_rsa.php'; $rsa = new Crypt_RSA(); $k = $rsa->createKey(512); $rsa->loadKey($k['privatekey']); $nkey = new OpenPGP_SecretKeyPacket(array( 'n' => $rsa->modulus->toBytes(), 'e' => $rsa->publicExponent->toBytes(), 'd' => $rsa->exponent->toBytes(), 'p' => $rsa->primes[1]->toBytes(), 'q' => $rsa->primes[2]->toBytes(), 'u' => $rsa->coefficients[2]->toBytes() )); $uid = new OpenPGP_UserIDPacket('Test <test@example.com>'); $wkey = new OpenPGP_Crypt_RSA($nkey); $m = $wkey->sign_key_userid(array($nkey, $uid)); print $m->to_bytes(); 

    примеры / sign.php

     <?php require dirname(__FILE__).'/../lib/openpgp.php'; require dirname(__FILE__).'/../lib/openpgp_crypt_rsa.php'; /* Parse secret key from STDIN, the key must not be password protected */ $wkey = OpenPGP_Message::parse(file_get_contents('php://stdin')); $wkey = $wkey[0]; /* Create a new literal data packet */ $data = new OpenPGP_LiteralDataPacket('This is text.', array('format' => 'u', 'filename' => 'stuff.txt')); /* Create a signer from the key */ $sign = new OpenPGP_Crypt_RSA($wkey); /* The message is the signed data packet */ $m = $sign->sign($data); /* Output the raw message bytes to STDOUT */ echo $m->to_bytes(); ?> 

    примеры / verify.php

     <?php require dirname(__FILE__).'/../lib/openpgp.php'; require dirname(__FILE__).'/../lib/openpgp_crypt_rsa.php'; /* Parse public key from STDIN */ $wkey = OpenPGP_Message::parse(file_get_contents('php://stdin')); $wkey = $wkey[0]; /* Parse signed message from file named "t" */ $m = OpenPGP_Message::parse(file_get_contents('t')); /* Create a verifier for the key */ $verify = new OpenPGP_Crypt_RSA($wkey); /* Dump verification information to STDOUT */ var_dump($verify->verify($m)); ?> 

    Это очень хорошие примеры на основе PHP-порта расширения, который вы запросили, и мы рассмотрим некоторые примеры

    Использование GnuPG с PHP – Full Tutorials

    пример

    Получение ключевой информации

     putenv('GNUPGHOME=/home/sender/.gnupg'); // create new GnuPG object $gpg = new gnupg(); // throw exception if error occurs $gpg->seterrormode(gnupg::ERROR_EXCEPTION); // get list of keys containing string 'example' try { $keys = $gpg->keyinfo('example'); print_r($info); } catch (Exception $e) { echo 'ERROR: ' . $e->getMessage(); } 

    Шифрование простой почты

     // set path to keyring directory // set path to keyring directory putenv('GNUPGHOME=/home/sender/.gnupg'); // create new GnuPG object $gpg = new gnupg(); // throw exception if error occurs $gpg->seterrormode(gnupg::ERROR_EXCEPTION); // recipient's email address $recipient = 'dgar@example.org'; // plaintext message $plaintext = "Dear Dave,\n The answer is 42.\n John"; // find key matching email address // encrypt plaintext message // display and also write to file try { $gpg->addencryptkey($recipient); $ciphertext = $gpg->encrypt($plaintext); echo '<pre>' . $ciphertext . '</pre>'; file_put_contents('/tmp/ciphertext.gpg', $ciphertext); } catch (Exception $e) { die('ERROR: ' . $e->getMessage()); } 

    Расшифровка Почта

     // set path to keyring directory putenv('GNUPGHOME=/home/recipient/.gnupg'); // create new GnuPG object $gpg = new gnupg(); // throw exception if error occurs $gpg->seterrormode(gnupg::ERROR_EXCEPTION); // recipient's email address $recipient = 'dgar@example.org'; // ciphertext message $ciphertext = file_get_contents('/tmp/ciphertext.gpg'); // register secret key by providing passphrase // decrypt ciphertext with secret key // display plaintext message try { $gpg->adddecryptkey($recipient, 'guessme'); $plaintext = $gpg->decrypt($ciphertext); echo '<pre>' . $plaintext . '</pre>'; } catch (Exception $e) { die('ERROR: ' . $e->getMessage()); } 

    Вы также должны посмотреть на пример