[PHP] cookie vergelijking MD5hash, toch fout?

Pagina: 1
Acties:
  • 116 views sinds 30-01-2008
  • Reageer

  • Life-is-party
  • Registratie: Oktober 2000
  • Laatst online: 14-02-2023
Ik heb een login systeem gemaakt met Cookies

Bij login 'SET' hij een cookie met
UID & MD5 hash.
Aan de hand van de volgende code:
PHP:
1
2
3
4
5
6
7
8
<?
            // maakt een md5 hashje van code
            $secretword = "blaat"; 
               $hash = md5($LoginNaam.$LoginPassword.$secretword); 
            // Set de code
              Setcookie ("Uid", $uid, Time()+3600); 
              Setcookie ("userhash", $hash, Time()+3600);  
?>

$LoginNaam => komt uit de submit
$LoginPassword => komt uit de submit.

Ik heb nu een cookiecheck gemaakt. Waar hij dus de md5 hash ophaalt met de hash die hij zelf genereert.
Via de volgende code.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?
$Query = mysql_query("SELECT * FROM lokwa_users WHERE uid=$HTTP_COOKIE_VARS[Uid]"); 
$Results = mysql_num_rows($Query); 
 while ($row = mysql_fetch_array($Query))

$LoginNaam = $row[username];
$LoginPassword = $row[password];
$secretword = "blaat"; 
$hash = md5($LoginNaam.$LoginPassword.$secretword); 

//zegt of de hash goed is
if($hash == $userhash) { 
      echo "<BR><BR>Oke alles is goed!!!"; 
} else { 
      echo "<BR><BR>Er is met het koekje geknoeid!!!"; 
} 
?>

Nu krijg ik dus elke keer dat 'er is met het koekje geknoeid!!!'....

Dus dacht ik laat ik eens de hash uit het cookie naar voren halen. En die hij zelf genereerd. En idd die zijn verschillend. (ik weet niet of ik ze mag tonen, is dat gevaarlijk?)

Maarja hoe krijg ik ze nou hetzelfde? Ik kom d'r niet echt uit

Acer TM661LMi - Intel Centrino 1,4 Ghz - 512mb ram - DVD-RW


  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

en als je hier-en-daar wat eho's neerzet van waar je mee bezig bent?

btw aan die md5() resultaten hebben we [gelukkig] nix ;)

Klaar voor een nieuwe uitdaging.


  • goalgetter
  • Registratie: Juni 1999
  • Laatst online: 25-08 15:24
Probeer eens ipv $userhash ook $HTTP_COOKIE_VARS["userhash"] te gebruiken (zoals je dat wel doet met de user id.

  • Life-is-party
  • Registratie: Oktober 2000
  • Laatst online: 14-02-2023
Oké,

ik kan met de volgende code
PHP:
1
2
3
4
5
<?
    echo $HTTP_COOKIE_VARS["Uid"];
    echo "<BR>Userhash<BR>";
    echo $HTTP_COOKIE_VARS["userhash"];
?>

De volgende dingen UIT de cookies halen
code:
1
2
3
3
Userhash
bbdc898ecf5716f94d283c29b25790da

Verder heb ik de MD5 hash die vergeleken moet worden met he cookie ook effies ge-echo'd:
code:
1
40f9f2ec46144ae6cd5b27fbd4ea83fe

Acer TM661LMi - Intel Centrino 1,4 Ghz - 512mb ram - DVD-RW


  • Life-is-party
  • Registratie: Oktober 2000
  • Laatst online: 14-02-2023
Op vrijdag 19 oktober 2001 15:30 schreef goalgetter het volgende:
Probeer eens ipv $userhash ook $HTTP_COOKIE_VARS["userhash"] te gebruiken (zoals je dat wel doet met de user id.
Gedaan, maar geen resultaat. Maar zoals je in de bovenstaande post kan zien, zijn de 2 Hash'es NIET gelijk

Acer TM661LMi - Intel Centrino 1,4 Ghz - 512mb ram - DVD-RW


  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

wat haal je uit de database bij username en password in beide gevallen?

Klaar voor een nieuwe uitdaging.


  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

<SNIP>
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?
$sql= sprintf("SELECT * FROM lokwa_users WHERE uid=%d", $HTTP_COOKIE_VARS["Uid"]);
//Controle
echo $sql;
 
$Query = mysql_query($sql); 
$Results = mysql_num_rows($Query); 
// ERRMM Waarom een While?
// Je verwacht maar 1 resultaat terug niet goed, dan is het jammer
// while ($row = mysql_fetch_array($Query))
$row = mysql_fetch_array($Query);
$LoginNaam = $row[username];
$LoginPassword = $row[password];
// Controle komt er wel wat uit?
echo "<BR>LoginNaam:",$LoginNaam;
echo "<BR>LoginPassword:",$LoginPassword;
//
//
$secretword = "blaat"; 
$hash = md5($LoginNaam.$LoginPassword.$secretword); 
// Controle
echo "<BR>Userhash: " , $userhash;
echo "<BR>hash: " , $hash;
//zegt of de hash goed is
if($hash == $userhash) { 
      echo "<BR><BR>Oke alles is goed!!!"; 
} else { 
      echo "<BR><BR>Er is met het koekje geknoeid!!!"; 
} 
?>

Probeer dit eens?

Programmer - an organism that turns coffee into software.


  • Life-is-party
  • Registratie: Oktober 2000
  • Laatst online: 14-02-2023
Uhm bij de eerst ('SET-TEN') komt hij uit de submit. (de LoginNaam & LoginPasword). Via ander scrippie worden die vergelijken. Werkt allemaal. (wordt vergeleken met de gegevens IN de database...........)

Bij het checken komen de gegevens uit de database.

Acer TM661LMi - Intel Centrino 1,4 Ghz - 512mb ram - DVD-RW


  • Life-is-party
  • Registratie: Oktober 2000
  • Laatst online: 14-02-2023
Op vrijdag 19 oktober 2001 15:42 schreef LuCarD het volgende:
<SNIP>
PHP:
1
2
3
<?
....
?>

Probeer dit eens?
Het volgende krijg ik:
code:
1
2
3
4
5
6
7
8
9
10
11
SELECT * FROM lokwa_users WHERE uid=0
Warning: Supplied argument is not a valid MySQL result resource in /www/clientsites/.../www/testcookie2.php on line 7

Warning: Supplied argument is not a valid MySQL result resource in /www/clientsites/.../www/testcookie2.php on line 11

LoginNaam:
LoginPassword:
Userhash: 
hash: 2d41b60214b2fc6f2e2647e8d6816cac

Er is met het koekje geknoeid!!!

Acer TM661LMi - Intel Centrino 1,4 Ghz - 512mb ram - DVD-RW


  • Life-is-party
  • Registratie: Oktober 2000
  • Laatst online: 14-02-2023
nobody?

uhm het lijkt er dus op dat hij de waardes niet echt lekker uit het cookie haalt? waar gaat het fout?

Acer TM661LMi - Intel Centrino 1,4 Ghz - 512mb ram - DVD-RW


  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

je query klopt niet. zie mysql_error().

Klaar voor een nieuwe uitdaging.


  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Je fout zit hem dus in het setten van he cookie....

kan je het hele script van het setten van de cookie eens laten zien?

edit:

Sorry D2k, ik zal volgende keer wat langer wachten met reageren. goed? >:)

Programmer - an organism that turns coffee into software.


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op vrijdag 19 oktober 2001 17:22 schreef LuCarD het volgende:
Je fout zit hem dus in het setten van he cookie....

kan je het hele script van het setten van de cookie eens laten zien?
ik wou er net om vragen

Doet iets met Cloud (MS/IBM)


Verwijderd

Op vrijdag 19 oktober 2001 17:22 schreef LuCarD het volgende:
Je fout zit hem dus in het setten van he cookie....

kan je het hele script van het setten van de cookie eens laten zien?
Euh, daar begint ie het topic toch mee, of word ik nu kippig? :?

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op vrijdag 19 oktober 2001 17:25 schreef Stoned-cow het volgende:

[..]

Euh, daar begint ie het topic toch mee, of wordt ik nu kippig? :?
das niet volledig
en daar zit dus waarschijnlijk de fout

Doet iets met Cloud (MS/IBM)


  • Life-is-party
  • Registratie: Oktober 2000
  • Laatst online: 14-02-2023
oké mijn set cookie: (mijn hele file login.php) waarnaar wordt verwezen als je op submit druk bij de login velden
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?
 
If ($Submit) { 
    include('./include/config.inc.php');
          $server = mysql_connect($dbhost, $dbuser, $dbpass); 
          mysql_select_db($dbname, $server); 

    $Query = mysql_query("SELECT * FROM lokwa_users WHERE username = '$LoginNaam' AND password = '$LoginPassword'"); 
        $Results = mysql_num_rows($Query); 
         while ($row = mysql_fetch_array($Query))
        $uid = $row[uid];

If ($Results == '1') 
        {             
    $Login = "1";  
    session_register("Login"); 
    session_register("uid");

            // maakt een md5 hashje van code
    $secretword = "blaat"; 
    $hash = md5($LoginNaam.$LoginPassword.$secretword); 
            // Set de code
      Setcookie ("Uid", $uid, Time()+3600); 
      Setcookie ("userhash", $hash, Time()+3600);             
        header("location: ./index2.php");     
        } 
Else 
        {         
          echo " Je gebruikersnaam of password klopt niet<br><a href=./index2.php>Log opnieuw in</a>.\n";         
        } 
    }
?>

Dit is de volledige code.

De sessie wordt keurig gestart en daar kan ik alles mee. (waardes uithalen, weer verder gebruik blablabla)
Deze cookie =>
code:
1
Setcookie ("Uid", $uid, Time()+3600);


wordt keurig gezet, die kan ik met deze code keurig opvragen = >
code:
1
echo $HTTP_COOKIE_VARS["Uid"];

Deze cookie =>
code:
1
Setcookie ("userhash", $hash, Time()+3600)

wordt ook geset
En de waardes daaruit kan ik opvragen met =>
code:
1
echo $HTTP_COOKIE_VARS["userhash"];

Dit is dus mijn set cookie.......

Acer TM661LMi - Intel Centrino 1,4 Ghz - 512mb ram - DVD-RW


  • brammetje
  • Registratie: Oktober 2000
  • Laatst online: 12-01-2025
ik hoop niet dat jij lokwaBB hebt gemaakt >:)
Maar dat je hem gebruikt is ook al erg ;)

Het probleem zit ergens in je code, je doet gewoon een md5() te vaak :) waar en hoe precies moet je even zelf uitzoeken.. :)

  • Life-is-party
  • Registratie: Oktober 2000
  • Laatst online: 14-02-2023
Op vrijdag 19 oktober 2001 20:53 schreef PlayR het volgende:
ik hoop niet dat jij lokwaBB hebt gemaakt >:)
Maar dat je hem gebruikt is ook al erg ;)

Het probleem zit ergens in je code, je doet gewoon een md5() te vaak :) waar en hoe precies moet je even zelf uitzoeken.. :)
Uhm lokwaBB? ik vind het niet slecht, nog geen bug ontdekt (nog weinig mee gewerkt) maar de andere zatten te veel bugs in.

Uhm ik gebruik
md5() bij het IN de cookie stoppen
md5() bij het vergelijken.....

Acer TM661LMi - Intel Centrino 1,4 Ghz - 512mb ram - DVD-RW


  • brammetje
  • Registratie: Oktober 2000
  • Laatst online: 12-01-2025
Op vrijdag 19 oktober 2001 20:57 schreef dombie-dom het volgende:

[..]

Uhm lokwaBB? ik vind het niet slecht, nog geen bug ontdekt (nog weinig mee gewerkt) maar de andere zatten te veel bugs in.

Uhm ik gebruik
md5() bij het IN de cookie stoppen
md5() bij het vergelijken.....
dan doe je alleen md5() bij het in de cookie stoppen...

lijkt mij dat dat het op zou moeten lossen.

  • brammetje
  • Registratie: Oktober 2000
  • Laatst online: 12-01-2025
omdat ik ook aan lokwaBB heb moeten geloven heb ik er wat aan verbouwd..

check ook dit ff:
http://lokwa.farcom.com/forum/viewtopic.php?fid=15&tid=115

  • Life-is-party
  • Registratie: Oktober 2000
  • Laatst online: 14-02-2023
Op vrijdag 19 oktober 2001 21:15 schreef PlayR het volgende:

[..]

dan doe je alleen md5() bij het in de cookie stoppen...

lijkt mij dat dat het op zou moeten lossen.
Ik moet toch de vergelijking maken met de 'hash' in de cookie, moet ik toch eerst de gegevens 'hash'-en????

Acer TM661LMi - Intel Centrino 1,4 Ghz - 512mb ram - DVD-RW


  • brammetje
  • Registratie: Oktober 2000
  • Laatst online: 12-01-2025
wordt je pass in de db niet al gehashed?

  • Life-is-party
  • Registratie: Oktober 2000
  • Laatst online: 14-02-2023
Op vrijdag 19 oktober 2001 21:33 schreef PlayR het volgende:
wordt je pass in de db niet al gehashed?
op dit test moment nog niet.....

Acer TM661LMi - Intel Centrino 1,4 Ghz - 512mb ram - DVD-RW


  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

Op vrijdag 19 oktober 2001 21:16 schreef PlayR het volgende:
omdat ik ook aan lokwaBB heb moeten geloven heb ik er wat aan verbouwd..

check ook dit ff:
http://lokwa.farcom.com/forum/viewtopic.php?fid=15&tid=115
you dumbass ;)

beetje lopen spammen voor got! bwah!

Klaar voor een nieuwe uitdaging.


  • Life-is-party
  • Registratie: Oktober 2000
  • Laatst online: 14-02-2023
lees van onder naar boven, dan is het probleem duidelijker :)

Oké, lokwaBB iedereen z'n mening daarvoor, klaar. ik gebruik die tabel. Het wachtwoord daarvan is NIET ge-encrypt, dat komt nog wel.

Op dit moment is het probleem dat hij tóch niet de zelfde hashjes maakt.

De volgende feiten zijn bekend:
Hij SET het cookie wél
Ik kan namelijk de Uid te voorschijn halen (die is juist)
Hij SET ook een hash van login-pass-secretword, die kan ik te voorschijn halen.
Hij SET ook nog eens de goede waarden. Dit heb ik ge-echo'd op de volgende manier
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?
//
// SET cookie
//
$secretword = "blaat"; 
$hash = md5($LoginNaam.$LoginPassword.$secretword); Setcookie ("Uid", $uid, Time()+3600); 
Setcookie ("userhash", $hash, Time()+3600);             
                
// controleren wat d'r in de cookie gaat
echo "<BR>Uid:",$uid;
echo "<BR>LoginNaam:",$LoginNaam;
echo "<BR>LoginPassword:",$LoginPassword;
echo "<BR>secretword:",$secretword;
echo "<BR>Hash:",$hash;
?>

Dan ga ik checken en vergelijken. Met de volgende code. Haal ik de gegevens uit Cookie[Uid]
PHP:
1
2
3
<?
echo $HTTP_COOKIE_VARS["Uid"];
?>

Hier krijg ik keurig de waarde uit die ik ingevoerd heb. Dit werkt dus allemaal heerlijk :p

Nu wil ik alleen dat hij de $hash nog gaat vergelijking.
Dussssssssss haal ik aan de hand van 'cookie[Uid]' de username en password UIT de database met de volgende code
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?
$Query = mysql_query("SELECT * FROM lokwa_users WHERE uid=$HTTP_COOKIE_VARS[Uid]"); 
$Results = mysql_num_rows($Query); 
 while ($row = mysql_fetch_array($Query))
    
$LoginNaam = $row[username];
$LoginPassword = $row[password];
$secretword = "blaat"; 
$hash = md5($LoginNaam.$LoginPassword.$secretword); 

echo "<BR>Uid:",$uid;
echo "<BR>LoginNaam:",$LoginNaam;
echo "<BR>LoginPassword:",$LoginPassword;
echo "<BR>secretword:",$secretword;
echo "<BR>Hash:",$hash;
?>

En nu haalt hij KEURIG de LoginNaam uit de database (aan de hand van het Cookie[Uid]. Álléén niet het Password. Hoe kan dit.

Het is dus logisch dat hij de verkeerde hash aanmaakt. Als ik namelijk $LoginPassword => handmatig invul, dan maakt hij de goede hash en geeft hij dat alles goed is.

DUSSSSSSSSSSSSSS om een lang verhaal kort te maken. Wat doe ik fout dat hij het Password NIET uit de database haalt?

Acer TM661LMi - Intel Centrino 1,4 Ghz - 512mb ram - DVD-RW


  • Life-is-party
  • Registratie: Oktober 2000
  • Laatst online: 14-02-2023
Is d'r niemand die hierin de fout ziet. Ik kom d'r simpel weg NIET uit :(

Acer TM661LMi - Intel Centrino 1,4 Ghz - 512mb ram - DVD-RW


  • E-2
  • Registratie: Oktober 2001
  • Laatst online: 12-12-2025

E-2

Probeer eens zonder while zou ik zeggen
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?
$Query = mysql_query("SELECT * FROM lokwa_users WHERE uid=$HTTP_COOKIE_VARS[Uid]"); 
$Results = mysql_num_rows($Query);

$row = mysql_fetch_array($Query)
    
$LoginNaam = $row[username];
$LoginPassword = $row[password];
$secretword = "blaat"; 
$hash = md5($LoginNaam.$LoginPassword.$secretword); 

echo "<BR>Uid:",$uid;
echo "<BR>LoginNaam:",$LoginNaam;
echo "<BR>LoginPassword:",$LoginPassword;
echo "<BR>secretword:",$secretword;
echo "<BR>Hash:",$hash;
?>

Zo dus.

  • Life-is-party
  • Registratie: Oktober 2000
  • Laatst online: 14-02-2023
Op zondag 21 oktober 2001 15:02 schreef E-2 het volgende:
Probeer eens zonder while zou ik zeggen
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?
$Query = mysql_query("SELECT * FROM lokwa_users WHERE uid=$HTTP_COOKIE_VARS[Uid]"); 
$Results = mysql_num_rows($Query);

$row = mysql_fetch_array($Query)
    
$LoginNaam = $row[username];
$LoginPassword = $row[password];
$secretword = "blaat"; 
$hash = md5($LoginNaam.$LoginPassword.$secretword); 

echo "<BR>Uid:",$uid;
echo "<BR>LoginNaam:",$LoginNaam;
echo "<BR>LoginPassword:",$LoginPassword;
echo "<BR>secretword:",$secretword;
echo "<BR>Hash:",$hash;
?>

Zo dus.
Oké het werkt :p Ik snap alleen niet hoe dat nu zit met while? Ik wil het graag begrijpen. Als er nog een lieve GoT'er is die mij dat precies kan uitleggen, zou ik heel blij zijn :)

Maar ik ben nu ál heel blij

Acer TM661LMi - Intel Centrino 1,4 Ghz - 512mb ram - DVD-RW


  • goalgetter
  • Registratie: Juni 1999
  • Laatst online: 25-08 15:24
Als het goed is krijg je maar 1 record terug van je query. Dat impliceert dat een while loop overbodig is, aangezien je enkel een loop gebruikt als je een blok code meerdere keren zou willen uitvoeren.
Pagina: 1