[PHP/MYSQL] MD5 hash probleem op karakters "é è à"

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • DeNB3rt
  • Registratie: September 2002
  • Laatst online: 28-04 20:05
Beste mede proggers

Ik zit met hetvolgende probleem.
Voor een projectje draait er een MYSQL database waar een C#.NET app op inlogt met een gehasht MD5 paswoord. Dit werkt perfect.
Wil ik langs de PHP pagina inloggen, dan werkt dit niet.
Het gaat hem over paswoorden die "é è of à" bevatten.
Paswoorden zonder deze karakters worden op dezelfde manier gehasht als in de C# app, daar is het inloggen dus geen probleem.
Maak ik een kleine testpage(zie onderstaande code), met het paswoord=testjé, dan wordt deze correct gehasht en bevat $hashWord = e66dd73370d8451c35cdc76927cd2668.
Hetzelfde resultaat vinden we op http://www.md5encrypter.com/

PHP:
1
2
3
4
5
6
<?php
$wordToHash = 'testjé'; 
$hashWord = md5($wordToHash );
echo $wordToHash ;
echo $hashWord ;
?> 



Integreer ik nu deze 4 lijnen code op een bestaande PHP site (waar het dus foutloopt met inloggen voor paswoorden met é è à) dant komt er een ander hash resultaat op het scherm.
Dit heeft natuurlijk als gevolg dat er niet kan ingelogd worden, omdat er via de C# app wel een correcte hash in de database is geplaatst.

Hetzelfde verschil heb ik gemerkt als er rechtstreeks in MYSQL gehasht wordt, heeft dit er iets mee te maken?

Dit heeft natuurlijk als gevolg dat de hash niet overeenkomt met de hash die gecreerd wordt via de C# app en de website http://www.md5encrypter.com/
Iemand een idee wat er foutloopt? tips? Ik heb zelf niet zoveel ervaring met PHP, maar het lijkt me vreemd dat het testscript werkt, maar na integratie in een bestaande applicatie problemen zou moeten geven?

Thanks!

Acties:
  • 0 Henk 'm!

  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

Lijkt me iets te maken met de encoding die wordt meegestuurd op de webapplicatie.

Check die eens?

http://www.w3.org/TR/html....html#adef-accept-charset zet 'm eens in je form zelf.

[ Voor 33% gewijzigd door Snake op 24-02-2010 19:21 ]

Going for adventure, lots of sun and a convertible! | GMT-8


Acties:
  • 0 Henk 'm!

  • analog_
  • Registratie: Januari 2004
  • Niet online
Laat MySQL hashen en zorg dat je overal UTF8 gebruikt.

[ Voor 50% gewijzigd door analog_ op 24-02-2010 19:01 ]


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 03:22
De hashcode is gebaseerd op een iso-8859-1 character set encoding van de invoer. Waarschijnlijk wordt elders een andere encoding gebruikt. De oplossing is dus om te standaardiseren op één character encoding en die consequent te gebruiken. UTF-8 is een voor de hand liggende keuze omdat alle andere (Unicode) character sets daar in te coderen zijn. Dan moet je nog wel zorgen dat alle UTF-8 strings genormaliseerd zijn, anders zijn nog steeds verschillende coderingen mogelijk voor hetzelfde wachtwoord.

Overigens zit je dan nog wel met het probleem dat HTML formulieren niet standaard in UTF-8 gesubmit worden. Hoe dat precies werkt kan een webdeveloper je hopelijk vertellen. (Wellicht is dit topic daardoor interessanter voor /13)

[ Voor 18% gewijzigd door Soultaker op 24-02-2010 19:06 ]