Hopsel: nach Login gültigen Account prüfen

Beitrag lesen

Hi kEv*!

  1. ein mit md5 verschlüsseltes Passwort solltest du vorher nicht mit mysql_real_escape_string() behandeln. Es kann vorkommen, dass du dann einen anderen Hash in die Datenbank speicherst, als den vom Originalpasswort generierten Hash.
    Ok, wird auch geändert.
    Wenn ich das richtig verstanden habe ...
    erst escapen und dann durch die md5 Funktion jagen?

Ach kEv*... =)
Du musst einen mit einer Hashfunktion verschlüsselten String gar nicht escapen. Du bekommst von der md5-Funktion eine 32-stellige Hexadezimalzahl zurück, also Zeichen von 0-9 und a-f. Diese sind völlig ungefährlich.
Wenn du schon escapen möchtest, dann erst verschlüsseln und dann escapen: mysql_real_escape_string(md5($password));

Beispiel:

// Dieses Passwort bekommst du per Post  
$password = "3p\A'2gf$"  
  
echo mysql_real_escape_string($password);  
// 3p\\A\'2gf$  
  
echo md5(mysql_real_escape_string($password));  
// 8c45724d20a85bc0091b16d0e00f61c4  
  
echo md5($password);  
// d1d69573cafd4abf2eb9f845b0169856

Du siehst also, dass du mit den gleichen Passwörtern unterschiedliche Hashes bekommst.
Klar, dass jemand ausgerechnet diese Zeichen in einem Passwort nutzt ist unwahrscheinlich, aber möglich.

So kann dir kein Fehler passieren, wenn du das Passwort clientseitig mit md5 verschlüsseln möchtest.

MfG H☼psel

--
"It's amazing I won. I was running against peace, prosperity, and incumbency."
George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)