mcrypt.* et mdecrypt.*
fournissent un système de chiffrement symétrique basé sur
libmcrypt. Les deux filtres supportent les mêmes algorithmes
disponibles avec la bibliothèque mcrypt,
sous la forme de la directive mcrypt.ciphername
où ciphername est le nom du chiffrement qui sera
passé Ã mcrypt_module_open(). Les cinq paramètres
suivants sont aussi disponibles :
Tableau N-1. Paramètres du filtre mcrypt
Paramètre
Obligatoire
Par défaut
Valeurs possibles
mode
Optionnel
cbc
cbc, cfb, ecb, nofb, ofb, stream
algorithms_dir
Optionnel
ini_get('mcrypt.algorithms_dir')
Chemin vers les algorithmes de modules
modes_dir
Optionnel
ini_get('mcrypt.modes_dir')
Chemin vers les modes de modules
iv
Obligatoire
N/A
Généralement 8, 16 ou 32 octets de données binaires. Dépend du chiffrement
key
Obligatoire
N/A
Généralement 8, 16 ou 32 octets de données binaires. Dépend du chiffrement
Exemple N-10. Chiffrement d'un fichier avec 3DES
<?php $passphrase = 'My secret';
/* Transforme un mot de passe humain * en une paire iv/clé */ $iv = substr(md5('iv'.$passphrase, true), 0, 8); $key = substr(md5('pass1'.$passphrase, true) . md5('pass2'.$passphrase, true), 0, 24); $opts = array('iv'=>$iv, 'key'=>$key);
/* Transforme un mot de passe humain * en une paire iv/clé */ $iv = substr(md5('iv'.$passphrase, true), 0, 8); $key = substr(md5('pass1'.$passphrase, true) . md5('pass2'.$passphrase, true), 0, 24); $opts = array('iv'=>$iv, 'key'=>$key);