openssl_pkcs7_encrypt

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

openssl_pkcs7_encryptEncriptar un mensaje S/MIME

Descripción

openssl_pkcs7_encrypt ( string $infile , string $outfile , mixed $recipcerts , array $headers [, int $flags = 0 [, int $cipherid = OPENSSL_CIPHER_RC2_40 ]] ) : bool

openssl_pkcs7_encrypt() toma el contenido del archivo nombrado por infile y lo encripta usando un cifrado RC2 de 40 bits por lo que sólo lo podrá leer los destinatarios previstos especificados por recipcerts.

Parámetros

infile

outfile

recipcerts

Un único certificado X.509, o una matriz de certificados X.509.

headers

headers es una matriz de cabeceras que serán añadidas delante de la información después de que haya sido encriptada.

headers puede ser una matriz asociativa con las claves como el nombre de la cabecera, o una matriz indexada, donde cada elemento contiene una sola línea de cabecera.

flags

flags se puede usar para especificar las opciones que afectan al proceso de codificación - véase constantes PKCS7.

cipherid

Una de las constants de cipher.

Valores devueltos

Devuelve TRUE en caso de éxito o FALSE en caso de error.

Ejemplos

Ejemplo #1 Ejemplo de openssl_pkcs7_encrypt()

<?php
// el mensaje que quiere encriptar y enviar a su agente secreto
// en el campo, conocido como nighthawk. Tiene su certificado
// en el archivo nighthawk.pem
$data = <<<EOD
Nighthawk,

Alto secreto, ¡Confidencial!

¡El enemigo nos está rodeando! ¡Encuéntrese conmigo en el café a las 8.30am
para obtener su pasaporte falso!

C.G.
EOD;

// cargar la clave
$clave file_get_contents("nighthawk.pem");

// guardar el mensaje en un archivo
$fp fopen("mensaje.txt""w");
fwrite($fp$data);
fclose($fp);

// encriptarlo
if (openssl_pkcs7_encrypt("mensaje.txt""enc.txt"$clave,
    array(
"Para" => "[email protected]"// sintaxis asociativa
          
"De: C.G. <[email protected]>"// sintaxis indexada
          
"Tema" => "Confidencial"))) {
    
// mensaje firmado - ¡envíelo!
    
exec(ini_get("ruta_correo") . " < enc.txt");
}
?>