# openssl_pkcs7_encrypt

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

openssl_pkcs7_encrypt — Encriptar 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" => "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");
}
?>`