Ejemplo openssl_public_encrypt y openssl_private_decrypt

Ejemplo 1

Descripción

Este ejemplo usa la función openssl_public_encrypt para cifrar una cadena de texto y a continuación, mediante la clave privada asociada, descifrarlo con la función openssl_private_decrypt. Para funcionar necesitan que antes se haya generado un par de claves y éstas hayan sido almacenadas en sendos archivos, cuyo camino y nombre puede verse en el código.

pkeycifra.png

Código

<?php
   // Recuperación exclusivamente de la clave pública
   $ClavePublica = openssl_pkey_get_public('file:///home/francisco/Publico/publica.pem');
 
   // Mensaje a cifrar
   $Mensaje = "OpenSSL es una biblioteca muy útil para los programadores PHP";
 
   // Se cifra el mensaje con la clave pública
   if(openssl_public_encrypt($Mensaje, $Cifrado, $ClavePublica))
     // esta información sería la que se enviaría al destinatario
     print "<h3>Mensaje cifrado</h3><textarea cols='40' rows='10'>$Cifrado</textarea>";
 
   // Se recupera la clave privada del destinatario del mensaje
   $ClaveP = openssl_pkey_get_private('file:///home/francisco/Publico/privada.pem', 'micontrasena');
 
   // y se utiliza para descifrarlo
   if(openssl_private_decrypt($Cifrado, $Descifrado, $ClaveP))
      print "<h3>Mensaje descifrado</h3>$Descifrado";
 
?>
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License