|
Formations privées Rue Albert 1er, 7 6810 Pin - Chiny (/fax: 061/32.00.15 |
|
Formation: apprenez à créer et référencer votre propre site Internet |
|
FORMATIONS |
Le MAGASIN YBET |
PRODUITS et SERVICES |
| Logiciels de gestion | ||
| Logiciel compta CIEL |
26. Le cryptage des données en PHP.1 Introduction - 2. Méthodes d'encryptage - 3. Récupérer les cookies - 4. Exemple d'utilisation: login - mot de passe - 5. Mise à jour du cookie - 6. Vérification de l'utilisateur - 7. Gestion des utilisateurs dans les pages - 8. Pour conclure Lorsque nous avons utilisé les Cookies, nous n'avons pas coder le mot de passe. Ceci pose quelques problèmes de sécurité. Cette partie va nous permettre d'étudier quelques fonctions. J'essayerais d'être le plus simple possible. Pourtant, les fonctions PHP permettant de crypter et de décrypter un texte sont suffisamment nombreuses pour en rebuter plus d'un. En plus, les fonctions PHP permettent une multitude de possibilités liées à la méthode de cryptage (encore une bonne raison d'essayer de faire simple en n'en voyant que quelques unes). Reprenons la gestion des cookies comme vu précédemment lors de la connexion d'un utilisateur (sans la partie vérification dans la base de donnée). Dans l'exemple ci-dessous, le nom du cookies est YBET. Le contenu reprend le login suivi de -pw- puis seulement le mot de passe. Nous avons volontairement supprimé le timestamp pour ne pas compliquer. Cette partie vérifie donc la présence du cookies ybet, et récupère le login et mot de passe s'il n'existe pas.
A l'inverse, lorsque nous récupérons le login et le mot de passe dans la base de donnée, la création du cookie est
2. Méthodes d'encryptage.Dans le cas général, le cryptage utilise une clé. C'est une suite de lettres (ou une phrase) qui est connue des deux parties. Dans notre cas, la clé est uniquement connue par le serveur qui crypte le mot de passe lors de la création et le décrypte lors de la récupération par le cookies. D'un autre coté, il y a différentes méthodes, on parle d'algorithme, du plus simple au plus compliqué. En dernier, il y a la méthode de gestion du login et du mot de passe (vous pouvez éventuellement ne crypter que le mot de passe).
La fonction (ou plutôt la bibliothèque) mcrypt accessible depuis PHP 4.0.2 permet une large panoplie d'algorithmes de chiffrement, tels que DES, DES, TripleDES, Blowfish (par défaut), 3-WAY, SAFER-SK64, SAFER-SK128, TWOFISH, TEA, RC2 et GOST en modes CBC, OFB, CFB et ECB. Elle accepte également RC6 et IDEA qui ne sont pas considérés comme libres de droits. La majorité utilisent un chiffrement sur 64 bits. La commande de chiffrement est:
La commande de déchiffrement est:
Les modes de chiffrement et de déchiffrage doivent forcément être les mêmes!.
Au niveau du mode de cryptage, on en retrouve 4 utilisables avec la commande Mcrypt:
3. Exemples d'utilisation.Une remarque, certaines erreurs sont liées au paramétrage du fichier php.ini et tous les algorithme ne sont pas implantés sur tous les serveurs. EasyPhp n'accepte normalement aucune méthode de chiffrement. Ces tests doivent dont être exécutés directement sur un serveur Internet. Commençons par un cryptage simple, algorythme BLOWFICH en mode CBC (donc sans vecteur d'initialisation)
Une autre méthode utilisant un vecteur d'initialisation, plus sécurisée mais plus complexe à mettre en oeuvre:
Le résultat nous donne: ------------ BLOWFISH mode CBC ------------------Warning: mcrypt_encrypt() [function.mcrypt-encrypt]: Attempt to use an empty IV, which is NOT recommend in /home/ybet/www/internet14/php-26.php on line 554 Warning: mcrypt_decrypt() [function.mcrypt-decrypt]: Attempt to use an empty IV, which is NOT recommend in /home/ybet/www/internet14/php-26.php on line 556 Mot de passe à chiffrer: texte à crypter Mot de passe chiffre: ¯vÔ८FÊšÆy“& Mot de passe déchiffrer: texte à crypter ------------ BLOWFISH avec mode NOFB -----------Warning: mcrypt_create_iv() expects parameter 2 to be long, string given in /home/ybet/www/internet14/php-26.php on line 568 Warning: mcrypt_encrypt() [function.mcrypt-encrypt]: The IV parameter must be as long as the blocksize in /home/ybet/www/internet14/php-26.php on line 574 Warning: mcrypt_decrypt() [function.mcrypt-decrypt]: The IV parameter must be as long as the blocksize in /home/ybet/www/internet14/php-26.php on line 576 Mot de passe à crypter: Mot de passe à crypter Mot de passe crypté: Ì™ËTA«v"µ'>=(ÆjÒZà´3RMot de passe décrypté: Mot de passe à crypter Pas très difficile en théorie, tant que vous avez correctement sélectionner les paramètres. Il ne reste plus qu'à l'implanter dans la gestion des cookies et la relier à la table utilisateurs. Mais çà c'est une autre histoire. |
|
YBET Informatique: formation débutant ou avancé dans notre salle de formation ou en entreprise Renseignements, tarifs et inscriptions sur notre page formations informatiques |
Mise en ligne: 27/03/2008