Почему не декодируется openssl_public_decrypt()

Почему не декодируется если использую openssl_public_decrypt($crypttext, $decrypted, $publickey), НО срабатывает если использую openssl_private_decrypt($crypttext, $decrypted, $privatekey);

<?php



if (isset($_SERVER['HTTPS']) )
{
    echo "SECURE: This page is being accessed through a secure connection.<br><br>";
}
else
{
    echo "UNSECURE: This page is being access through an unsecure connection.<br><br>";
}

// Create the keypair -- Генерирует новый секретный ключ
$res=openssl_pkey_new();

// Get private key -- Получает строку с ключем в формате PEM
openssl_pkey_export($res, $privatekey);

// Get public key
$publickey=openssl_pkey_get_details($res); // Получает массив с детальной информацией о ключе

$publickey=$publickey["key"];

echo "Private Key:<BR>$privatekey<br><br>Public Key:<BR>$publickey<BR><BR>";

$cleartext = '1234 5678 9012 3456';

echo "Clear text:<br>$cleartext<BR><BR>";

// Шифрование данных открытым ключём
openssl_public_encrypt($cleartext, $crypttext, $publickey);
echo "Crypt text:<br>$crypttext<BR><BR>";

//openssl_private_decrypt($crypttext, $decrypted, $privatekey);
openssl_public_decrypt($crypttext, $decrypted, $publickey);
echo "Decrypted text:<BR>$decrypted<br><br>";

?>

Ответы (1 шт):

Автор решения: Виктор Васильев

Всё оказалось проще, читаю мануал penssl_public_encrypt() шифрует data открытым ключем key и сохраняет в crypted. Впоследствии расшифровать их можно функцией openssl_private_decrypt().

→ Ссылка