Задать вопрос
@wolf-9830

Почему публичный ключ не валиден?

Сгенерировал ключ программой openssl.exe:
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyfFQSZEUlce53iq8CqKq
tRFKkmtn5rrgGk3G/L27nH1tmXxg8egSPJavO+OoS61V7ALBbfffc2srVI/HXBAu
sK1bLLVSQRp3qIvsa/Mqx6vWrujRsCg5Sy5nEaxWEJa6ngRXl3k3LcAG7pOXIr0A
DXlZ3ySdLiNSVX7Ny/0fTv8aqUbSQBweJ16YFTVqer2PEV+xN28Qxd0qhHr32r/I
VSqGtV6md68qhDiJr33in4bvQLtXmp/20N1ACfpU5CyPXMa+QfD2DyyQseHg6TLT
RugZzAW0EgGNUZz/54956U1IjRmpOjSEKusKGheiG4bkfbhlDOPrSlYDgw6CqSKF
UwIDAQAB
-----END PUBLIC KEY-----


Теперь в php коде пытаюсь зашифровать строку, но выводит ошибку, следующего содержания:
openssl_public_encrypt(): key parameter is not a valid public key


Вот код:
$encrypted = '';
			$data = "Hello world";
			$pk  = openssl_get_publickey("../public.pem");
			openssl_public_encrypt($data, $encrypted, $pk);
			echo chunk_split(base64_encode($encrypted));

Путь к ключу правильный, почему он не валиден? Как исправить?
  • Вопрос задан
  • 563 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
@lubezniy
А каково значение переменной $pk перед шифрованием?
И да. Посмотрите внимательно php.net/manual/en/function.openssl-pkey-get-public.php - что именно нужно подставлять в аргумент openssl_get_publickey .
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы