(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)
mcrypt_generic — Chiffre les données
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é.
mcrypt_generic() chiffre les données
data. Les données sont complétées
par des "\0" pour obtenir une taille multiple de la taille
d'un bloc. Elle retourne les données chiffrées. À noter que la longueur
de la chaîne retournée peut être plus longue que celle
passée en argument, à cause du complément.
Pour enregistrer les données chiffrées dans une base de données
il faut s'assurer d'enregistrer la chaîne entière retournée par cette fonction,
sinon la chaîne ne sera pas déchiffrée correctement. Si la chaîne d'origine
comporte 10 caractères et que la taille d'un bloc est de 8 (utiliser
mcrypt_enc_get_block_size() pour déterminer cette taille),
on aura besoin d'au moins 16 caractères dans le champ de la base de données.
À noter que la chaîne retournée par mdecrypt_generic() aura
16 caractères de long... utiliser rtrim($str, "\0")
pour supprimer le complément.
Par exemple, si on enregistre les données dans une base de données MySQL, il faut se souvenir que les champs de type VARCHAR suppriment automatiquement les espaces en trop durant l'insertion. Comme les données chiffrées peuvent se terminer avec un espace (ASCII 32), les données seront endommagées par cette suppression. Stockez les données dans un champ de type TINYBLOB/TINYTEXT (ou plus grand) pour que tout fonctionne normalement.
tdtd doit être
initialisé avec la fonction mcrypt_generic_init(),
avec une clé et un VI, avant d'appeler cette fonction. Lorsque le chiffrement
est réalisé, il faut libérer les buffers en appelant la fonction
mcrypt_generic_deinit().
Voir mcrypt_module_open() pour un exemple.
dataRetourne les données chiffrées.