mdecrypt_generic

(PHP 4 >= 4.0.2, PHP 5)

mdecrypt_generic — Déchiffre

Description

string mdecrypt_generic ( resource $td, string $data )

mdecrypt_generic() déchiffre les données data . Notez que la longueur de la chaîne déchiffrée peut être plus longue que la chaîne originale, car elle peut avoir été complétée par des caractères "\0 ".

Exemple 1454. 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 mcrypt_generic() , mcrypt_generic_init() et mcrypt_generic_deinit() .