Шифрование PGP - PHP openssl


У меня есть этот ключ RSA 2048 в локальном файле "ключ.ключ":

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.11 (GNU/Linux)

...
...
...
-----END PGP PUBLIC KEY BLOCK-----

Как я могу использовать его в PHP для шифрования строки для отправки? Я нахожусь в среде общего хостинга и не могу установить GnuPG, поэтому я решил, что включенные функции OpenSSL - это правильный путь.

Я пробовал это, но я получаю "...параметр ключа не является допустимым открытым ключом..."

<?php

$text = 'hello jeremy how are you';
$key = openssl_pkey_get_public(chunkfile_get_contents('key.key')); 

openssl_public_encrypt($text, $encrypted, $key);
echo $crypted;
exit;
Author: jstudios, 2014-12-30

1 answers

OpenSSL не поддерживает OpenPGP, форматы и протоколы разные. Вместе с PHP наиболее разумным способом является взаимодействие GnuPG с использованием модуля GnuPG PHP, я привел пример в вопросе Шифрование файлов с помощью PGP в PHP?. Прямой доступ к GnuPG может быть возможен, если вы можете выполнять произвольные приложения с PHP, но это, скорее всего, будет ограничено (и значительно более опасно с точки зрения возможности использования).

Если вы вас просят отправить зашифрованные сообщения OpenPGP, но у вас нет доступа к GnuPG и этому модулю, найдите другую хостинговую компанию, предоставляющую GnuPG, попросите вашего текущего провайдера сделать это или настройте свой собственный веб-сервер.

 4
Author: Jens Erat, 2017-05-23 11:47:23