Почему не декодируется 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().