MD5 different sous PHP et MySQL ??!

Ihsahn Messages postés 2 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 6 juin 2006 - 6 juin 2006 à 16:18
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 7 juin 2006 à 09:35
Bonjour,

Le script ci-dessous me retourne c864ec8f0b97c3a230a230ee5f0ce699 comme valeur.

<?php

echo md5("W@térH0µ$e");

?>

alors que la fonction MD5 de MySQL appliqué à la même chaine de caractères (W@térH0µ$e) me renvoie ça :
c12e2e1635ddfba140325a1b7aaa8eed

La fonction MD5 de MySQL serait-elle differente de celle de PHP ?! Certains caractères "spéciaux" ne passerait-il pas correctement ? Problème de hashage ?
Je précise que pour des chaines plus simples je n'ai pas ce problème : les résultats sont identiques.

Merci

NB : PHP 5.1.1 sur un Apache2 (WinXP) + MySQL 4.1 et MySQL 5.0
A voir également:

3 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
6 juin 2006 à 17:31
Hello,

2 problèmes à priori :
- tu utilises des double quotes, avec un $e à la fin. PHP interprête les chaînes entre guillemets...et s'il trouve des variables, tente de les remplacer par leur valeur. C'ets ce qu'il fait ici. Et $e n'existe pas. Donc, ton md5 n'est PAS celui de la chaîne que tu crois générer...

- néanmoins, en utilisant des apostrophes, le md5 reste différent. Je pense qu'il s'agit d'un problème avec php, qui a sans doute des soucis pour interpréter les caractères spéciaux que tu utilises.
0
Ihsahn Messages postés 2 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 6 juin 2006
6 juin 2006 à 20:57
OK pour les quotes, mais je ne comprend toujours pas pourquoi ces valeurs de MD5 diffèrent selon si tu utilises MySQL ou la fonction md5() pour les générer ... j'ai passer un bon bout de temps sur le net sans grand succès ni piste réelle ...
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
7 juin 2006 à 09:35
Je t'ai dit, à mon avis, c'est un problème de traitement de l'encodage, sous php, mysql, ou les deux. Ils ne traitent pas la même chaîne.
0
Rejoignez-nous