# openssl_decrypt

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

openssl_decrypt — Déchiffrer les données

### Description

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

Prend une chaine brute ou base64 encodée et la déchiffre en utilisant la méthode et la passe de phrase passées.

### Liste de paramètres

`data`

  Le message chiffré à déchiffrer.

`cipher_algo`

  L'algorithme de chiffrement. Pour la liste des algorithmes de chiffrement disponible, utiliser openssl_get_cipher_methods().

`passphrase`

  La phrase de passe. Si la phrase de passe est plus courte que prévu, elle est silencieusement complétée avec des caractères `NUL` ; si la phrase de passe est plus longue que prévu, elle est silencieusement tronquée.

  Attention

  Il n'y a pas de fonction de dérivation de clé utilisée pour le paramètre `passphrase` comme son nom pourrait le suggérer. La seule opération utilisée est le remplissage avec des caractères `NUL` ou la troncature si la longueur est différente de celle attendue.

`options`

  Le paramètre `options` peut prendre comme valeur `OPENSSL_RAW_DATA` ou `OPENSSL_ZERO_PADDING` ou `OPENSSL_DONT_ZERO_PAD_KEY`.

`iv`

  Un vecteur d'initialisation non-`null`. Si le VI est plus court que prévu, il est complété avec des caractères `NUL` et un avertissement est émis ; si la phrase de passe est plus longue que prévu, elle est tronquée et un avertissement est émis.

`tag`

  La balise d'authentification en mode de chiffrement AEAD. Si elle est incorrecte, l'authentification échoue et la fonction retourne `false`.

  Attention

  La longueur de `tag` n'est pas vérifié par la fonction. C'est la responsabilité de l'appeleur de s'assurer que la longueur du tag correspond à la longueur du tag reçu quand openssl_encrypt() a été appelée. Sinon, le déchiffrement peut réussir si le début du tag donné correspond au début du vrai tag.

`aad`

  Données supplémentaires authentifiées.

### Valeurs de retour

La chaine décryptée en cas de succès ou `false` si une erreur survient.

### Erreurs / Exceptions

Émets une erreur de niveau `E_WARNING` si un algorithme cipher inconnu est passé via `cipher_algo`.

Émets une erreur de niveau `E_WARNING` si une valeur vide est passée comme paramètre `iv`.

### Historique

Version | Description
--- | ---
8.1.0 | `tag` est désormais nullable.
7.1.0 | Les paramètres `tag` et `aad` ont été ajoutée.

### Voir aussi

- openssl_encrypt() - Chiffre les données