Ankündigung

Einklappen
Keine Ankündigung bisher.

Passwort kann nicht verifiziert werden

Einklappen

Neue Werbung 2019

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

  • Passwort kann nicht verifiziert werden

    Ich habe ein Login, bei dem das Passwort bei der Registrierung in einer mysql-DB als CHAR(60) gespeichert wird:
    PHP-Code:
    function setPwd($pwd$username) {
        
    $pwdh password_hash($pwdPASSWORD_BCRYPT);
        
    // neues PW in DB speichern
        
    $sql_set_pwd $this->pdo->prepare("
            UPDATE user
            SET Pwd = :pwd
            WHERE username = :username;
        "
    );
        
    $sql_set_pwd->bindParam(':pwd'$pwdh);
        
    $sql_set_pwd->bindParam(':username'$username);
        
    $sql_set_pwd->execute();

    *die Verbindung zur DB wird in einer anderen Funktion hergestellt
    Beim Login soll logischerweise das Passwort verifiziert werden:
    PHP-Code:
    if(password_verify($pw$pwd)) {
        
    session_start();
        
    $_SESSION['username'] = $username;
        
    $verifypwd->endConnection();
        
    header("refresh:0;url=inside.php");

    $pw ist dabei das eingegebene Passwort und $pwd der Hash, der aus der DB ausgelesen wird.
    Leider gibt 'password_verify($pw, $pwd)' aber immer 'false' zurück.
    Woran kann das liegen?

  • #2
    Sorry, hat sich erledigt.
    Das Problem war meine eigene Blödheit - das Attribut '$pwd' der setPwd-Funktion war bereits ein Hash; den nochmal zu verhashen war natürlich doof.

    Kommentar


    • #3
      Du solltest Variablen sinnvoll benennen. Also erstens keine kryptischen Abkürzungen wie $pw oder $pwd. Warum nicht einfach $password?

      Und zweitens, wenn du einen Hash übergibst, sollte die Variable $passwordHash oder $hash heißen, damit man auf einem Blick sieht, dass hier ein Hash-Wert zu erwarten ist.

      Programmcode sollte nicht wie ein Rätsel aufgebaut sein, sondern man sollte ihn wie eine Beschreibung "lesen" können.

      Kommentar

      Lädt...
      X