(PHP 4 >= 4.0.6, PHP 5, PHP 7)
openssl_pkcs7_encrypt — Encriptar un mensaje S/MIME
$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
.
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.
Devuelve TRUE
en caso de éxito o FALSE
en caso de error.
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" => "nighthawk@example.com", // sintaxis asociativa
"De: C.G. <cg@example.com>", // sintaxis indexada
"Tema" => "Confidencial"))) {
// mensaje firmado - ¡envíelo!
exec(ini_get("ruta_correo") . " < enc.txt");
}
?>