Documentación offline PHP master

openssl_encrypt

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

En esta página

openssl_encrypt

Cifra los datos

Descripción#

#[\SensitiveParameter] #[\SensitiveParameter] openssl_encrypt(string $data, string $cipher_algo, string $passphrase, [int $options], [string $iv], [string $tag], [string $aad], [int $tag_length]): string
```php

Cifra los datos pasados con el método y la frase de contraseña especificados. Devuelve un `string` bruto o codificado en base64.

## Parámetros

`data`  
Los datos del mensaje en texto bruto a cifrar.

`cipher_algo`  
El método de cifrado. Para una lista de los métodos de cifrado disponibles, utilizar `openssl_get_cipher_methods`.

`passphrase`  
La frase de contraseña. Si la frase de contraseña es más corta de lo esperado, se rellena silenciosamente con caracteres `NUL`; si la frase de contraseña es más larga de lo esperado, se trunca silenciosamente.

> [!CAUTION]
> No se utiliza ninguna función de derivación de clave para el parámetro `passphrase` como su nombre podría sugerir. La única operación utilizada es el relleno con caracteres `NUL` o la truncación si la longitud es diferente de la esperada.

`options`  
`options` es una disyunción a nivel de bits de los flags `OPENSSL_RAW_DATA` y `OPENSSL_ZERO_PADDING` o `OPENSSL_DONT_ZERO_PAD_KEY`.

`iv`  
Un vector de inicialización no-`null`. Si el IV es más corto de lo esperado, se completa con caracteres `NUL` y se emite un aviso; si la frase de contraseña es más larga de lo esperado, se trunca y se emite un aviso.

`tag`  
La etiqueta de autenticación pasada por referencia al utilizar el modo de cifrado AEAD (GCM o CCM).

`aad`  
Datos adicionales autenticados.

`tag_length`  
La longitud de la `tag` de autenticación. Su valor puede estar entre 4 y 16 para el modo GCM.

## Valores devueltos

Devuelve la cadena cifrada en caso de éxito o `false` si ocurre un error.

## Errores/Excepciones

Emite un error de nivel `E_WARNING` si se pasa un algoritmo de cifrado desconocido como parámetro `cipher_algo`.

Emite un error de nivel `E_WARNING` si se pasa un valor vacío como parámetro `iv`.

## Historial de cambios

| Versión | Descripción                                              |
|---------|----------------------------------------------------------|
| 7.1.0   | Se añadieron los parámetros `tag`, `aad` y `tag_length`. |

## Ejemplos

Ejemplo de cifrado autenticado AES en modo GCM para PHP 7.1+
Ejemplo de cifrado autenticado AES en modo GCM anterior a PHP 7.1

```php

Véase también#

openssl_decrypt