Problem mit MD5 Verschlüsselung

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Problem mit MD5 Verschlüsselung

    Hallo,

    also ich habe bin momentan dabei ein Login-System mit Benutzerregestrierung zu schreiben, dabei tritt ein Problem auf und zwar, wenn ich meine Benutzerdaten an die Datenbank schicke wird alles korrekt eingetragen, nur das Passwort hat immer die gleiche Verschlüsselung.

    Der zur Verarbeitung gehörende Code:

    Quellcode

    1. <?php
    2. //Übergabe der Werte aus dem regestrierung.php Formular
    3. $vorname = $_POST['vorname'];
    4. $name = $_POST['name'];
    5. $nick = $_POST['nick'];
    6. $pw = $_POST['password'];
    7. //Verbindung zur Datenbank aufbauen
    8. $SQL_verbindung = mysql_connect ("localhost","d0050379","gaestebuch");
    9. if (!mysql_select_db ("d0050379",$SQL_verbindung))
    10. {
    11. die ("<br>Es konnte keien Verbindung zur Datenbank hergestellt werden!");
    12. }
    13. else
    14. {
    15. echo "<br><br>Verbindung wurde erfolgreich hergestellt\n<br>";
    16. }
    17. // SQL-Anweisung erstellen
    18. $sql = "INSERT INTO benutzerdaten (Nickname, Kennwort, Nachname, Vorname) VALUES('$nick','".md5($pw)."','$name','$vorname')";
    19. mysql_query ($sql);
    20. if (mysql_affected_rows ($SQL_verbindung) > 0)
    21. {
    22. echo "Benutzer erfolgreich angelegt.<br>\n";
    23. }
    24. else
    25. {
    26. echo "Fehler beim Anlegen der Benutzer.<br>\n";
    27. }
    28. ?>
    Alles anzeigen


    Und das Formular:

    Quellcode

    1. <form action="reg_verarb.php" method="post">
    2. <span>Vorname: &nbsp;&nbsp;&nbsp;<input type="text" name="vorname" size="10" maxlength="30"></input></span>
    3. <br>
    4. <br>
    5. <span>Nachname:&nbsp;<input type="text" name="name" size="10" maxlength="30"></input></span>
    6. <br>
    7. <br>
    8. <span>Nick: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="nick" size="10" maxlength="10"></input></span>
    9. <br>
    10. <br>
    11. <span>Password:&nbsp;&nbsp;&nbsp;<input type="password" name="pw" size="10" maxlength="10"></input></span>
    12. <br>
    13. <br>
    14. <p align="center"><input type="submit" value="Abschicken"></input>&nbsp; &nbsp;<input type="reset" value="Löschen"></input></p>
    15. </form>
    Alles anzeigen
    [/quote]
  • "Verschlüsseln" passt nicht wirklich zum Hash (auch Einmal-Verschlüsselung klingt irgendwie falsch), da es weder einen Schlüssel gibt, noch man an das Original wieder rankommt. Hashen bedeutet immer auch Informationsverlust. Außerdem kommt beim hashen noch hinzu, dass das Ergebnis eine gewisse Länge hat, die immer gleich ist, beim Verschlüsseln ist das nicht so -> daraus folgt dass mehrere Dinge den gleichen Hash erzeugen müssen, auch dass ist bei Verschlüsselung nicht so.
    ~ mfg SeBa

    Ich beantworte keine PMs zu Computer-/Programmierproblemen. Bitte wendet euch an das entsprechende Forum.

    [Blockierte Grafik: http://i.creativecommons.org/l/by-sa/3.0/80x15.png]
  • Jetzt muß ich mal ein wenig besserwisserisch sein, auch wenn das mit dem eigentlichen Thema nichts zu tun hat:

    SeBa schrieb:

    "Verschlüsseln" passt nicht wirklich zum Hash (auch Einmal-Verschlüsselung klingt irgendwie falsch), da es weder einen Schlüssel gibt, noch man an das Original wieder rankommt. Hashen bedeutet immer auch Informationsverlust.


    Stimmt, weil eine Hasfunktion eine eindeutige, aber keine eineindeutige Abbildung ist. Das heißt jedes Element der Wertemenge (alle Werte die gehasht werden können) ist genau einem Element der Bildmenge (Menge aller Hashwerte) zugeordnet ist, aber mehrere Element der Wertemenge können demselben Element der Bildmenge zugeordnet werden, weswegen man beim Hashen :smoke: auch eine Kollisionsbehandlung einbaut.

    SeBa schrieb:

    Außerdem kommt beim hashen noch hinzu, dass das Ergebnis eine gewisse Länge hat, die immer gleich ist


    Das ist falsch! Diese Aussage trifft auf die Hash-Funktion von MD5 zu, ist aber generell nicht gültig! Es gibt andere Implementationen der Streuspeicherung (so heißt das Ding im Deutschen) die völlig andersgeartete Elemente der Bildmenge erzeugen ...
  • Da die Wertemenge unendlich groß ist, die Schlüssellänge aber limitiert ist, kann keine bijektive Funktion existieren.
    Dass die Schlüssel immer gleich lang sind war blöd gesagt, allerdings gibt es immer eine maximale Länge (sonst bräuchte man keine Informationsverdichtung), der Rest ist Darstellungssache. Auch bei MD5 oder SHA-1 können afaik Schlüssel mit 0 anfangen und sind daher kürzer als andere, da man die führende Stellen weglassen könnte.
    ~ mfg SeBa

    Ich beantworte keine PMs zu Computer-/Programmierproblemen. Bitte wendet euch an das entsprechende Forum.

    [Blockierte Grafik: http://i.creativecommons.org/l/by-sa/3.0/80x15.png]