(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)
mdecrypt_generic — Déchiffre les données
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
mdecrypt_generic(resource
$td
, string
$data
): string
Liste de paramètres
-
td
-
Un descripteur de chiffrement, retourné par la fonction
mcrypt_module_open()
-
data
-
Les données chiffrées.
Valeurs de retour
Retourne la chaîne déchiffré.
Exemples
Exemple #1 Exemple avec mdecrypt_generic()
<?php
/* Données */
$key = 'Ceci est une très longue clé de chiffrement, et même trop longue';
$plain_text = 'Ceci sont des données importantes';
/* Ouvre le module et crée un VI */
$td = mcrypt_module_open('des', '', 'ecb', '');
$key = substr($key, 0, mcrypt_enc_get_key_size($td));
$iv_size = mcrypt_enc_get_iv_size($td);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
/* Initialise le module de chiffrement */
if (mcrypt_generic_init($td, $key, $iv) != -1) {
/* Chiffre les données */
$c_t = mcrypt_generic($td, $plain_text);
mcrypt_generic_deinit($td);
/* Réinitialise les tampons pour le déchiffrement */
mcrypt_generic_init($td, $key, $iv);
$p_t = mdecrypt_generic($td, $c_t);
/* Nettoye */
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
}
if (strncmp($p_t, $plain_text, strlen($plain_text)) == 0) {
echo "ok\n";
} else {
echo "erreur\n";
}
?>
L'exemple ci-dessus montre comment vérifier que les données avant
chiffrement sont bien les mêmes que celles après
chiffrement/déchiffrement. Il est très important de réinitialiser
le buffer de chiffrement avec mcrypt_generic_init()
avant que nous ne déchiffriez les données.
Le gestionnaire de déchiffrement doit toujours être initialisé
par la fonction mcrypt_generic_init() avec une clé
et un VI avant d'appeler cette fonction. Lorsque le chiffrement est fait,
il faut que vous libériez les données chiffrées en appelant
mcrypt_generic_deinit().
Voir mcrypt_module_open() pour un exemple.
Voir aussi