Documentación offline PHP master

openssl_pkcs7_encrypt

master Ver versión oficial en línea Licencia CC-BY-3.0Descargado el 2026-08-02

En esta página

openssl_pkcs7_encrypt

Cifra un mensaje S/MIME

Descripción#

openssl_pkcs7_encrypt(string $input_filename, string $output_filename, OpenSSLCertificate $certificate, array $headers, [int $flags], [int $cipher_algo]): bool
```php

`openssl_pkcs7_encrypt` toma el contenido del fichero `input_filename` y lo cifra utilizando un cifrado RC2 de 40 bits, de manera que el mensaje solo pueda ser leído por el poseedor de `certificate`.

## Parámetros

`input_filename`  

`output_filename`  

`certificate`  
Puede ser un certificado X.509 o un array de certificados X.509.

`headers`  
`headers` es un array de encabezados que serán añadidos al inicio del mensaje, una vez que los datos hayan sido cifrados.

`headers` puede ser un array asociativo, donde las claves son los nombres de los encabezados, o bien un array indexado donde cada línea contiene un encabezado completo.

`flags`  
`flags` puede ser utilizado para especificar opciones que afectarán al cifrado (ver las [constantes PKCS7](#openssl.pkcs7.flags)).

`cipher_algo`  
Una de las [constantes cipher](#openssl.ciphers).

## Valores devueltos

Esta función retorna `true` en caso de éxito o `false` si ocurre un error.

## Historial de cambios

| Versión | Descripción |
|----|----|
| 8.1.0 | El algoritmo de cifrado por omisión (`cipher_algo`) es ahora AES-128-CBC (`OPENSSL_CIPHER_AES_128_CBC`). Anteriormente, se utilizaba PKCS7/CMS (`OPENSSL_CIPHER_RC2_40`). |
| 8.0.0 | `certificate` acepta ahora una instancia de `OpenSSLCertificate`; anteriormente, se aceptaba un `resource` de tipo `OpenSSL X.509 CSR`. |

## Ejemplos

Ejemplo con `openssl_pkcs7_encrypt`
"nighthawk@example.com", // sintaxis en forma de clave "From: HQ ", // sintaxis en forma de índice "Subject" => "Solo para sus ojos !"))) { // mensaje cifrado - envíelo ! exec(ini_get("sendmail_path") . " < enc.txt"); } ?>

```php