Ankündigung

Einklappen
Keine Ankündigung bisher.

Datanbank Query liest Passwort nicht richtig

Einklappen

Neue Werbung 2019

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

  • Datanbank Query liest Passwort nicht richtig

    Hallo Leute,
    Ich bin derzeit dabei meine Webseiten auf die password_verify Funktion umzumodeln um dem PHP Trend hinterher zu laufen.
    Nun habe ich folgenden PHP Code:

    PHP-Code:
    $hash "charitybikerde";

            
    $username htmlentities($_POST['username']);
            
    $password password_hash($_POST['password'].$hashPASSWORD_DEFAULT, array("cost" => 12));

            
    $get_user $database->select("SELECT `username`,`password`,`role` FROM `user` WHERE `username`='".$username."'");


              
    $valid password_verify($_POST['password'].$hash$get_user[0]['password']);

                
    var_dump($valid "Login erfolgreich" "Login Fehlgeschlagen"); 
    So wie es dort steht klappt es auch. Hänge ich hinter die WHERE Clause jetzt noch das Passwort bekomme ich keine Daten zurück. Lass ich es allerdings so wie es ist bekomme ich die richtigen Daten und der Login funktioniert.

    Irgendwie bin ich Ratlos. Klar ich könnte es so lassen weil es ja Funktioniert aber ich würde dennoch gerne wissen warum es auf die andere Variante nicht klappt

  • #2
    Zitat von Spanien16 Beitrag anzeigen
    So wie es dort steht klappt es auch. Hänge ich hinter die WHERE Clause jetzt noch das Passwort bekomme ich keine Daten zurück. Lass ich es allerdings so wie es ist bekomme ich die richtigen Daten und der Login funktioniert.
    Wie meinst du das? Klar findest du nichts, wenn du nach dem Passwort in der DB suchst, ist ja auch ein gesalzener hash.

    Kommentar


    • #3
      Das Passwort wird je gehast dann müsste ich wenn ich doch nach dem Hash suche auch Daten zurück bekommen oder nicht ?

      Wenn ich den Query so wie oben lass geht alles schreibe ich ihn nun wie gewohnt:
      PHP-Code:
      $get_user $database->select("SELECT `username`,`password`,`role` FROM `user` WHERE `username`='".$username."' AND `password`='".$passowrd."'"); 
      bekomme ich ein leeres Array zurück also keine Daten. Lass ich das password aber weg klappt es. Das ist was mich wundert

      Kommentar


      • #4
        Zitat von Spanien16 Beitrag anzeigen
        Das Passwort wird je gehast dann müsste ich wenn ich doch nach dem Hash suche auch Daten zurück bekommen oder nicht ?
        Ja. An den Hash kommst du aber nicht mehr ohne den Salt zu kennen. Und der Salt steht zusammen mit dem hash in der Datenbank.

        Kommentar


        • #5
          ok also müsste ich es wenn ich dich richtig verstanden habe das ganze so schreiben wo im Anfangspost und dann mit password_verify das Passwort "Bestätigen" lassen

          Kommentar


          • #6
            Ja. Aber wozu soll $hash gut sein?

            Kommentar


            • #7
              $hash ist ein "zusatz" der in den Hash von password_hash eingebunden wird bei der Registrierung z.b

              Kommentar


              • #8
                Zitat von Spanien16 Beitrag anzeigen
                $hash ist ein "zusatz" der in den Hash von password_hash eingebunden wird bei der Registrierung z.b
                Wozu?

                Kommentar


                • #9
                  Zitat von Spanien16 Beitrag anzeigen
                  $hash ist ein "zusatz" der in den Hash von password_hash eingebunden wird bei der Registrierung z.b
                  Also ein Salt, das brauchst du nicht, das übernimmt password_hash für dich.

                  Kommentar

                  Lädt...
                  X