Сбой openssl_public_encrypt

Когда я зашифровываю переменную, в которую помещаю какой-то текст, она работает, но если я использую переменную, которой я назначаю вывод $ this:

$data1 = new DOMDocument("1.0", "utf-8");
//creating the xml document
...
//after creating the document
$output = $data1->saveXML();

где $ data1 является объектом xml. После этого я использую открытый сертификат для извлечения открытого ключа, для шифрования строки $ output:

$pub_key = openssl_pkey_get_public(file_get_contents('./certificate.cer'));
$keyData = openssl_pkey_get_details($pub_key);
$key = $keyData['key'];

После того, как у меня есть открытый ключ в переменной $ key, я хочу зашифровать вывод $ с помощью открытого ключа $ key, и я использую следующий код для обработки возможной ошибки:

$crypted='';
if (($blnResult = openssl_public_encrypt($output, $crypted, $key)) === false) {
throw new \Exception("error: openssl_public_encrypt() failed!");
}

echo base64_encode($crypted);

И это дает мне error: openssl_public_encrypt() failed!, Обратите внимание, что если я назначаю $output='foo', это работает, поэтому я не понимаю, почему это не работает, если я назначаю $output the data->saveXML();? Это строка длиной 270 символов. Он должен работать.

0

Решение

Задача ещё не решена.

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

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

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