pgp шифрование с php «расшифровка не удалась»

Я пытаюсь зашифровать и расшифровать файлы с помощью php. Файлы должны быть асинхронно дешифрованы с помощью pgp.

Когда я использовал стандартные функции gnupg-php, шифрование работало хорошо. Я могу расшифровать его на консоли. Если я пытаюсь расшифровать его с помощью php, я всегда получаю неопределенное исключение: «расшифровка не удалась»

Я пробовал это также с разными ключами. Я также использовал другую библиотеку «singpolyma / openpgp-php».

Где может быть проблема?

$sMessage = 'Huhu';
$recipient = '[email protected]';
$sPassword = '1234';

// initialize PGP
putenv("GNUPGHOME=".__DIR__."/.pgp/");
$oPgp = new gnupg();
$oPgp->import($sPublicKey);
$oPgp->seterrormode(GNUPG_ERROR_EXCEPTION);
$oPgp->import($sPublicKey);
$oPgp->addencryptkey($recipient);

$ciphertext = $oPgp->encrypt($sMessage);
echo '<pre>'.$ciphertext.'</pre>';
file_put_contents('/tmp/ciphertext.gpg', $ciphertext);

// create new GnuPG object
$gpg = new gnupg();
$gpg->import($sPrivateKey);

// throw exception if error occurs
$gpg->seterrormode(gnupg::ERROR_EXCEPTION);

// ciphertext message
$gpg->adddecryptkey($recipient, $sPassword);
$plaintext = $gpg->decrypt($ciphertext);
echo '<pre>' . $plaintext . '</pre>';

1

Решение

Я решил свою проблему. Это вызвано изменениями в gnupg v2. Проблема заключалась в использовании ключа-пароля. Это можно решить, настроив pgp для автоматического использования пароля. Посмотрите комментарий «[email protected]» на phpt.net.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]