mcrypt_decrypt

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_decryptDéchiffre un texte avec les paramètres donnés

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.1.0 et a été SUPPRIMÉE à partir de PHP 7.2.0. Dépendre de cette fonction est fortement déconseillé.

Description

mcrypt_decrypt(
    string $cipher,
    string $key,
    string $data,
    string $mode,
    string $iv = ?
): string|false

Déchiffre les données data et retourne les données déchiffrées.

Liste de paramètres

cipher

Une constante parmi les constantes MCRYPT_ciphername, ou le nom de l'algorithme, sous la forme d'une chaîne de caractères.

key

La clé utilisée lors du chiffrement des données. Si la taille de la clé fournit n'est pas supportée par le cipher, la fonction émettra un warning et retournera false

data

Les données qui seront déchiffrées avec utilisant les paramètres cipher et mode. Si la taille des données ne correspond pas à n * la taille du bloc, les données seront complétées par des '\0'.

mode

Une constantes parmi les constantes MCRYPT_MODE_modename, ou une des chaînes suivantes : "ecb", "cbc", "cfb", "ofb", "nofb" ou "stream".

iv

Utilisé pour l'initialisation des modes CBC, CFB, OFB, ainsi que dans quelques algorithmes du mode STREAM. Si la taille de l'IV fourni n'est pas supporté par le mode d'opération ou si vous ne fournissez pas d'IV, mais que le mode d'opération en requiert un, la fonction émettra un avertissement et retournera false.

Valeurs de retour

Retourne les données déchiffrées sous la forme d'une chaîne de caractères ou false si une erreur survient.

Voir aussi

add a note

User Contributed Notes 1 note

up
32
eddiec at stararcher dot com
19 years ago
It appears that mcrypt_decrypt pads the *RETURN STRING* with nulls ('\0') to fill out to n * blocksize. For old C-programmers, like myself, it is easy to believe the string ends at the first null. In PHP it does not:

strlen("abc\0\0") returns 5 and *NOT* 3
strcmp("abc", "abc\0\0") returns -2 and *NOT* 0

I learned this lesson painfully when I passed a string returned from mycrypt_decrypt into a NuSoap message, which happily passed the nulls along to the receiver, who couldn't figure out what I was talking about.

My solution was:
<?php
$retval
= mcrypt_decrypt( ...etc ...);
$retval = rtrim($retval, "\0"); // trim ONLY the nulls at the END
?>
To Top