PHP script di sicuro accesso - hash md5 non corrisponde l'hash ho scritto al database in uno script precedente?

StackOverflow https://stackoverflow.com/questions/3030758

  •  26-09-2019
  •  | 
  •  

Domanda

Sto cercando di mettere insieme uno script di accesso in PHP come un progetto di apprendimento.

Questo è il codice per la mia scrittura database quando l'utente si registra. Entrambi questi valori sono scritti nel database.

 $this->salt = md5(uniqid());
 $this->password = md5($password.$salt);

Al momento del login, la seguente funzione è sparato.

function challengeLogin($submittedPassword, $publicSalt, $storedPassword){
    if(md5($submittedPassword.$publicSalt) == $actualPassword){
        return 0;
    }else{
        return 1;
    };
}

Purtroppo, sul potenziamento attraverso il mio codice, i due valori non sono mai eguagliato. Qualcuno può aiutarmi a capire perché?

È stato utile?

Soluzione

Credo che il problema nel codice è che la variabile $salt non è definito, quindi è vuota. Si dovrebbe usare $this->salt

Cambia

$this->password = md5($password.$salt);

a

$this->password = md5($password.$this->salt);

Altri suggerimenti

Confrontare i valori grezzi prima che venga generato un hash con alcune dichiarazioni di eco di base. O il sale è sbagliato, la password è sbagliata, o l'hash in qualche modo ottenuto avvitato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top