openssl_seal
En esta página
openssl_seal
Sella datos
Descripción#
#[\SensitiveParameter] openssl_seal(string $data, string $sealed_data, array $encrypted_keys, array $public_key, string $cipher_algo, [string $iv]): int
```php
La `openssl_seal` sella (cifra) `data` utilizando el `cipher_algo` especificado con una clave secreta generada aleatoriamente. La clave es posteriormente cifrada con cada una de las claves públicas en el array `public_key`, y cada clave de envoltura cifrada es devuelta en `encrypted_keys`. Esto permite enviar datos sellados a múltiples destinatarios (siempre que sus claves públicas estén disponibles). Cada destinatario debe recibir tanto los datos sellados como la clave de envoltura que ha sido cifrada con la clave pública del destinatario. El IV (vector de inicialización) es generado, y su valor es devuelto en `iv`.
## Parámetros
`data`
Los datos a sellar
`sealed_data`
Los datos sellados.
`encrypted_keys`
Array de claves cifradas.
`public_key`
Array de instancias `OpenSSLAsymmetricKey` que contienen las claves públicas.
`cipher_algo`
El método de cifrado.
> [!CAUTION]
> El valor por omisión para versiones de PHP anteriores a 8.0 es (`'RC4'`), que se considera no segura. Se recomienda encarecidamente especificar explícitamente un método de cifrado seguro.
`iv`
El vector de inicialización para el descifrado de `data`. Es requerido si el método de cifrado necesita un IV. Esto puede ser determinado llamando a `openssl_cipher_iv_length` con `cipher_algo`.
> [!CAUTION]
> El IV no puede ser definido explícitamente. Cualquier valor que se le asigne es sobrescrito por un valor generado aleatoriamente.
## Valores devueltos
Devuelve la longitud de los datos sellados en caso de éxito, y `false` en caso contrario. En caso de éxito, los datos sellados son colocados en el parámetro `sealed_data`, y las claves de envoltura en `encrypted_keys`.
## Historial de cambios
| Versión | Descripción |
|----|----|
| 8.0.0 | `public_key` ahora acepta un `array` de instancias de `OpenSSLAsymmetricKey`; anteriormente, se aceptaba un `array` de `resource`s de tipo `OpenSSL key`. |
| 8.0.0 | `cipher_algo` ya no es un parámetro opcional. |
| 8.0.0 | `iv` ahora es nullable. |
## Ejemplos
Ejemplo con `openssl_seal`
```php
Véase también#
openssl_open