login script, passwort mit md5

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • login script, passwort mit md5

    hallo,

    ich will bei meinem Login Script die Passwortabfage mit md5 verschlüsseln (vergleich der Daten in der Datenbank und das eingegebene Passwort).
    könnt ihr mir bitte dabei helfen ich bekomm das nich gebacken.

    Hier erstmal die bisherige Abfrage:

    PHP-Code:
    <?
    session_start();
    include('var.inc.php');


    if ((!isset($username)) OR (!isset($passwort))) 

    die ("Sorry, aber ohne Name bzw. Passwort geht hier nichts !"); 
    }
    $conn = mysql_connect($dbserver,$dbuser,$dbpass); 
    if (!$conn) 

    die ("Sorry, Verbindungsversuch zur Datenbank ist fehlgeschlagen !"); 
    }
    mysql_select_db($dbname,$conn);
    $result =  mysql_query("SELECT pass, seite FROM $tablename WHERE name = '$username'",$conn);
    $zeileholen =  mysql_fetch_array($result,MYSQL_ASSOC);  
    if ($zeileholen["pass"] <> $passwort) 

    die ("Sorry, aber dieses Passwort passt nicht zum Usernamen !"); 
    }


    $seite = $zeileholen["seite"];

    session_register('username');

    header ("Location:$seite"); 
    ?>
    Ich hab es schonmal mit unten stehendem script probiert aber das sagt er mir, dass das eingegebene Passwort nicht mit dem in der Datenbank übereinstimmt ( in der Datenbank ist das pw md5 verschlüsselt vorhanden).

    PHP-Code:
    <?
    session_start();
    include('var.inc.php');

    $passwortmd5 = md5($passwort);

    if ((!isset($username)) OR (!isset($passwort))) 

    die ("Sorry, aber ohne Name bzw. Passwort geht hier nichts !"); 
    }
    $conn = mysql_connect($dbserver,$dbuser,$dbpass); 
    if (!$conn) 

    die ("Sorry, Verbindungsversuch zur Datenbank ist fehlgeschlagen !"); 
    }
    mysql_select_db($dbname,$conn);
    $result =  mysql_query("SELECT pass, seite FROM $tablename WHERE name = '$username'",$conn);
    $zeileholen =  mysql_fetch_array($result,MYSQL_ASSOC);  
    if ($zeileholen["pass"] <> $passwortmd5) 

    die ("Sorry, aber dieses Passwort passt nicht zum Usernamen !"); 
    }


    $seite = $zeileholen["seite"];

    session_register('username');

    header ("Location:$seite"); 
    ?>
    Wo liegt der Fehler?

  • #2
    Ist das Passwort in der Datenbank auch MD5-verschlüsselt?
    *winks*
    Gilbert
    ------------------------------------------------
    Hilfe für eine Vielzahl von Problemen!!!
    http://www.1st-rootserver.de/

    Kommentar


    • #3
      PHP-Code:
      $zeileholen =  mysql_fetch_array($result,MYSQL_ASSOC);  
      echo 
      'Eingegebens Passwort (MD5): '.$passwortmd5;
      echo 
      '<br />';
      echo 
      'Passwort in DB: '.$zeileholen['pass']; 
      ausgabe?
      Ich denke, also bin ich. - Einige sind trotzdem...

      Kommentar


      • #4
        Original geschrieben von spikis
        ...( in der Datenbank ist das pw md5 verschlüsselt vorhanden)...
        Original geschrieben von Wotan
        Ist das Passwort in der Datenbank auch MD5-verschlüsselt?
        hey wotan, augenkrebs ?

        Kommentar


        • #5
          Re: login script, passwort mit md5

          du treibst diesen ganzen aufwand mit md5-verschlüsseltem passwort doch nicht etwa wirklich nur um anschliessend mit header() auf eine sowieso frei zugängliche seite weiterzuleiten, oder?
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            @mrhappiness

            Ich hab den code mal in mein script eingebunden und versucht die Datei auf dem Webserver aufzurufen. Da gibt er mir volgendes aus:

            Eingegebens Passwort (MD5): 598d4c200461b81522a3328565c25f7c
            Passwort in DB:

            PHP-Code:
            <?
            session_start();
            include('var.inc.php');

            $passwortmd5 = md5($passwort);


            $conn = mysql_connect($dbserver,$dbuser,$dbpass); 
            if (!$conn) 

            die ("Sorry, Verbindungsversuch zur Datenbank ist fehlgeschlagen !"); 
            }
            mysql_select_db($dbname,$conn);
            $result =  mysql_query("SELECT pass, seite FROM $tablename WHERE name = '$username'",$conn);
            $zeileholen =  mysql_fetch_array($result,MYSQL_ASSOC);  
            echo 'Eingegebens Passwort (MD5): '.$passwortmd5;
            echo '<br />';
            echo 'Passwort in DB: '.$zeileholen['pass'];



            ?>
            @wahsaga

            Die Seite auf die weitergeleitet wird, ist mit volgendem code geschützt:

            PHP-Code:
            if(!session_is_registered('username') || $_SESSION['username'] != "thomas") {
            header("location:../login.htm");
            die; } 
            Zuletzt geändert von spikis; 03.09.2003, 18:03.

            Kommentar


            • #7
              PHP-Code:
              $sql="SELECT pass, seite FROM $tablename WHERE name = '$username'";
              echo 
              'SQL: '.$sql.'<br />';
              $result =  mysql_query($sql,$conn);
              echo 
              'Anzahl Datensätze: '.mysql_num_rows($result); 
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar


              • #8
                @mrhappiness

                mit volgendem code gibt er
                Eingegebens Passwort (MD5): 598d4c200461b81522a3328565c25f7c
                Passwort in DB: 598d4c200461b81522a3
                SQL: SELECT pass, seite FROM zugriff WHERE name = 'admin'
                Anzahl Datensätze: 1
                aus.

                PHP-Code:
                <?
                session_start();
                include('var.inc.php');

                $passwortmd5 = md5($passwort);


                $conn = mysql_connect($dbserver,$dbuser,$dbpass); 
                if (!$conn) 

                die ("Sorry, Verbindungsversuch zur Datenbank ist fehlgeschlagen !"); 
                }
                mysql_select_db($dbname,$conn);
                $result =  mysql_query("SELECT pass, seite FROM $tablename WHERE name = '$username'",$conn);
                $zeileholen =  mysql_fetch_array($result,MYSQL_ASSOC);  
                echo 'Eingegebens Passwort (MD5): '.$passwortmd5;
                echo '<br />';
                echo 'Passwort in DB: '.$zeileholen['pass'];
                echo '<br />';
                $sql="SELECT pass, seite FROM $tablename WHERE name = '$username'";
                echo 'SQL: '.$sql.'<br />';
                $result =  mysql_query($sql,$conn);
                echo 'Anzahl Datensätze: '.mysql_num_rows($result);
                ?>

                Kommentar


                • #9
                  Original geschrieben von spikis
                  Passwort in DB: 598d4c200461b81522a3
                  MD5-verschlüsselte daten sind immer 32 zeichen lang dachte ich
                  Ich denke, also bin ich. - Einige sind trotzdem...

                  Kommentar


                  • #10
                    Fehler gefunden!

                    Das Passwortfeld in der Datenbank war auf 20 Zeichen begrenzt.

                    Danke an mrhappiness und alle anderen die geholfen haben.

                    Kommentar


                    • #11
                      frage:

                      wie kann man das passwort md5 verschlüsseln?
                      ich arbeite mit phpMyAdmin 2.4.0-rc2 und bei den typen gibt es weder password noch md5 zum auswählen...
                      komisch, denn ich hab in erinnerung, dass es das gegeben hat...
                      oder muss man folgendes machen:
                      PHP-Code:
                      $pwmd5=md5($pw);
                      $sql="INSERT INTO tabelle(name, pw) VALUES ('$name', '$pwmd5');"
                      mysql_query($sql); 
                      (der mysql-code könnte fehler enthalten, aber das habe ich jetzt aus dem stehgreif hingeschrieben)

                      mfg thomas
                      [color=black] Important: alt bei <img> ist immer erforderlich · Strings richtig trennen/verbinden · Kiddie-Code hat keine Chance[/color]

                      Kommentar


                      • #12
                        Das hat nichts mit einem Datentyp zu tun!

                        Unter phpMydmin 2.3.0 funktioniert die Verschlüsselung folgendermaßen:

                        Zu ändernden Datensatz wählen, beim Passwort-Feld Funktion 'MD5' wählen, im Feld 'Wert' das Passwort im Klartext eingeben und 'OK' kicken - voila.

                        Sollte wohl auch mit Deiner Version klappen?

                        Kommentar

                        Lädt...
                        X