2017-01-13 1 views
1

D'accord donc Im essayant de vérifier le mot de passe avec SHA 512, mais peu importe ce qu'il renvoie encore faux comme la vérification de hachage n'est pas correct.SHA 512 hachage et la vérification

hachage Génération lors de l'enregistrement

$hashed = password_hash(hash('sha512', $password), PASSWORD_DEFAULT); 

et de vérifier (lors de la connexion) J'utilise simplement

public function isValidLogin($username, $password) { 
    $sql = $this->connect(); 
    $sql->real_escape_string($username); 
    $sql->real_escape_string($password); 

    $res = $sql->query("SELECT password FROM users WHERE name='".$username."'"); 

    if ($res->num_rows >= 1) { 
     while($row = $res->fetch_assoc()) { 
      if (password_verify(hash('sha512', $password), $row['password'])) { 
       return true; 
      } 
     } 
    } 

    return false; 
} 
+1

Qu'est-ce que vous enregistrez de façon abrupte dans 'password'? Tout semble bon: http://sandbox.onlinephpfunctions.com/code/6be9bfccf7319332f6ca8faa5b6704f415d3d5e8 – Iwan

+0

Est-ce que votre champ de base de données a assez de longueur pour stocker le hachage? –

+0

Bien Im en utilisant 256 caractères pour le mot de passe –

Répondre

2

Essayez ce code au moment de l'inscription au lieu de votre code.

$hashed = hash("sha512", $password);