PHP Doppelte md5 Verschlüsselungs Problem...

  • Hiho liebe Community,

    ich hab' folgendes Problem:
    Ich hab' 'ne Installationsdatei, von 'nem CMS, die das, bei der Installation angegebene Passwort, 2x md5 Verschlüsseln soll und in die SQL Datenbank legen soll...mit:

    PHP
    $sql_user = "INSERT INTO login (loginName, loginPw) VALUES ('".$name."', '".md5(md5($pw))."')";
        $result = $db->query($sql_user);

    Beim Login in das CMS soll er, quasi, das gleiche machen mit:

    Da er, wenn ich dass Passwort "von Hand" in phpmyadmin eingebe & zweimal verschlüssele, mich in's CMS lässt...muss die Funktion, die hinter dem Login steht ja funktionieren!

    Meine Frage ist jetzt, was bei der ersten, installation, falsch verschlüsselt bzw. falsch gecodet ist? Denn wenn ich das CMS Installiere und mich einloggen will sagt er, dass das Passwort falsch ist....:oops:

    Wenn du im Recht bist, kannst du dir leisten, die Ruhe zu bewahren; und wenn du im Unrecht bist, kannst du dir nicht leisten, sie zu verlieren.
    __________________________________________
    Software design is hard, and we need all the help we can get.
    – Bjarne Stroustrup

  • Ich hatte es auch schon mit md5 und dazu 2 Hashwerte versucht, bsp:

    PHP
    $sql_user = "INSERT INTO login (loginName, loginPw) VALUES ('".$name."', '".md5($pw + h1D)+ r8ZyS)."')";
        $result = $db->query($sql_user);

    Und es kommt das gleiche....

    Wenn du im Recht bist, kannst du dir leisten, die Ruhe zu bewahren; und wenn du im Unrecht bist, kannst du dir nicht leisten, sie zu verlieren.
    __________________________________________
    Software design is hard, and we need all the help we can get.
    – Bjarne Stroustrup

  • Also einfach nur

    PHP
    $sql_user = "INSERT INTO login (loginName, loginPw) VALUES ('".$name."', '".md5($pw + h1D))."')";
        $result = $db->query($sql_user);

    Und fertig?

    Wenn du im Recht bist, kannst du dir leisten, die Ruhe zu bewahren; und wenn du im Unrecht bist, kannst du dir nicht leisten, sie zu verlieren.
    __________________________________________
    Software design is hard, and we need all the help we can get.
    – Bjarne Stroustrup

  • Code
    [COLOR=#000000][COLOR=#0000BB]$sql_user [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#DD0000]"INSERT INTO login (loginName, loginPw) VALUES ('"[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]$name[/COLOR][COLOR=#007700].[/COLOR][COLOR=#DD0000]"', '"[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]md5[/COLOR][COLOR=#007700]('muh1'.[/COLOR][COLOR=#0000BB]$pw.'iaah2'[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#DD0000]"')"[/COLOR][COLOR=#007700];
        [/COLOR][COLOR=#0000BB]$result [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]$db[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000BB]query[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]$sql_user[/COLOR][COLOR=#007700]);  [/COLOR][/COLOR]

    :D:D:D Such dir was aus

  • Jawohl, Sir ;)
    Und Danke :)

    Wenn du im Recht bist, kannst du dir leisten, die Ruhe zu bewahren; und wenn du im Unrecht bist, kannst du dir nicht leisten, sie zu verlieren.
    __________________________________________
    Software design is hard, and we need all the help we can get.
    – Bjarne Stroustrup

  • Wenn du willst kannst statt md5 auch sha1 nehmen oder was es in Zukunft an erneuerungen in Sachen Hashes geben wird

    mfg

  • Hm Problem Nr. 2 :)
    Ich hab's jetzt so gemacht, wie Du meintest, also mit .

    PHP
    $sql_user = "INSERT INTO login (loginName, loginPw) VALUES ('".$name."', '".md5('muh1'.$pw.'iaah2')."')";


    natürlich mit anderen hash "werten" ...aber wenn ich mich dann einloggen will, sagt er mir, dass das Passwort falsch ist...aber warum...ich habe auch in der Login.php die Verschlüsslung mit den beiden Werten angegeben!

    Wenn du im Recht bist, kannst du dir leisten, die Ruhe zu bewahren; und wenn du im Unrecht bist, kannst du dir nicht leisten, sie zu verlieren.
    __________________________________________
    Software design is hard, and we need all the help we can get.
    – Bjarne Stroustrup

  • Gib mal gasammten Code nun (und auch mehr...) und das sind keine hashwerte sondern das nennt sich SALT

  • Ok.
    Also als erstes der Ausschnitt aus der Install.php

    PHP
    $sql_user = "INSERT INTO login (loginName, loginPw) VALUES ('".$name."', '".md5('muh1'.$pw.'iaah2')."')";
        $result = $db->query($sql_user);
    
    
        if (!$result): die('Die Installation konnte nicht beendet werden.7');
            endif;

    Jetzt die Class_Login:

    Und zu guter letzt die Login.php

    Wenn du im Recht bist, kannst du dir leisten, die Ruhe zu bewahren; und wenn du im Unrecht bist, kannst du dir nicht leisten, sie zu verlieren.
    __________________________________________
    Software design is hard, and we need all the help we can get.
    – Bjarne Stroustrup

  • Na dann lass dir mal brav $pw zb mittels die($pw); ausgeben und schau mal was da so drinn steht 

  • Er gibt folgendes aus: 08555a8149d4cef42f0a22907e8b94d6

    Stimmt natürlich nicht mit der Datenbank überein...die Frage ist nur...WARUM?

    Wenn du im Recht bist, kannst du dir leisten, die Ruhe zu bewahren; und wenn du im Unrecht bist, kannst du dir nicht leisten, sie zu verlieren.
    __________________________________________
    Software design is hard, and we need all the help we can get.
    – Bjarne Stroustrup

  • Wie wo was???

    Mensch debugg halt richtig das kannst du auch selber ....
    Das passwort von der checklogin kommt ja woher also irgentwo wird die methode aufgerufen und vllt wird das pw ja davor schon wo gehashed

    mfg

  • Richtig debuggen
    1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
    2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(E_ALL); und ini_set("display_errors", true);
    3. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
    4. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
    5. Schritt 3 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
    6. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
    7. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
    8. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

  • Zitat

    Das passwort von der checklogin kommt ja woher also irgentwo wird die methode aufgerufen und vllt wird das pw ja davor schon wo gehashed

    mfg


    Das Passwort aus Checklogin kommt aus der Datenbank...und das wurde vorher in der Installation angegeben. Mit genau den gleichen Werten.

    Wenn du im Recht bist, kannst du dir leisten, die Ruhe zu bewahren; und wenn du im Unrecht bist, kannst du dir nicht leisten, sie zu verlieren.
    __________________________________________
    Software design is hard, and we need all the help we can get.
    – Bjarne Stroustrup

  • Den Code den ich sehe ist nix falsch, vllt trägst du ja doch das falsche PW in die Datenbank ein (leerzeichen) oder das $pw beim insert ist falsch

  • Ich hab' eben auch error_reporting(E_ALL); reingehauen und es kommt einfach nichts..kein Fehler nichts und das Passwort hab' ich jetzt auch schon, gefühlte, 20x neu eingegeben....

    Wenn du im Recht bist, kannst du dir leisten, die Ruhe zu bewahren; und wenn du im Unrecht bist, kannst du dir nicht leisten, sie zu verlieren.
    __________________________________________
    Software design is hard, and we need all the help we can get.
    – Bjarne Stroustrup

  • Ich mach' jetzt einfach sha1

    Wenn du im Recht bist, kannst du dir leisten, die Ruhe zu bewahren; und wenn du im Unrecht bist, kannst du dir nicht leisten, sie zu verlieren.
    __________________________________________
    Software design is hard, and we need all the help we can get.
    – Bjarne Stroustrup