openssl_decrypt

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

openssl_decryptDescifrar los datos

Descripción

openssl_decrypt(
    string $data,
    string $cipher_algo,
    #[\SensitiveParameter] string $passphrase,
    int $options = 0,
    string $iv = "",
    ?string $tag = null,
    string $aad = ""
): string|false

Toma una cadena sin tratar o codificada en base64 y la descifra utilizando el método y la frase de contraseña proporcionados.

Parámetros

data

El mensaje cifrado a descifrar.

cipher_algo

El algoritmo de cifrado. Para obtener la lista de algoritmos 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 completa silenciosamente con caracteres NUL; si la frase de contraseña es más larga de lo esperado, se trunca silenciosamente.

Precaución

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

El parámetro options puede tomar como valor OPENSSL_RAW_DATA o OPENSSL_ZERO_PADDING o OPENSSL_DONT_ZERO_PAD_KEY.

iv

Un vector de inicialización no-null. Si el VI 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 en modo de cifrado AEAD. Si es incorrecta, la autenticación falla y la función devuelve false.

Precaución

La longitud de tag no es verificada por la función. Es responsabilidad del llamador asegurarse de que la longitud del tag coincida con la longitud del tag recibido cuando openssl_encrypt() fue llamada. De lo contrario, el descifrado puede tener éxito si el inicio del tag proporcionado coincide con el inicio del verdadero tag.

aad

Datos adicionales autenticados.

Valores devueltos

La cadena descifrada en caso de éxito o false en caso de error.

Errores/Excepciones

Emite un error de nivel E_WARNING si se pasa un algoritmo de cifrado desconocido a través de 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
8.1.0 tag ahora es nullable.
7.1.0 Se añadieron los parámetros tag y aad.

Ver también