Login HASH SALT
Boa noite amigos, armazeno em um mysql senhas geradas pelo seguinte codigo:
$name = "name";
$email = "email";
$password = "pass";
$string = mcrypt_create_iv (24, MCRYPT_DEV_URANDOM);
$salt = strtoupper(bin2hex ($string));
$hash = hash_pbkdf2 ("sha1", $password, $string, 1000, 24, true);
$hash = strtoupper(bin2hex ($hash));
//finalmente execute a seguinte consulta:
$qrCreate = "INSERT INTO tc_users (name, email, hashedpassword, salt) VALUES ('$name', '$email', '$hash', '$salt')";
$stCreate = mysql_query($qrCreate) or die ('Erro ao cadastrar em '.$tabela.' '.mysql_error());
esse codigo insere um hash e salt unico nos campos, por mais que insira a mesma senha em outro usuario o hash e salt serao diferentes.
ai vem a duvida, como eu faço para comparar a senha texto digitada pelo usuario com os dados inseridos no BD, por exemplo,
se eu fizer a seguinte comparacao:
$readTeste = read('tc_users',"WHERE id = '2'");
foreach ($readTeste as $teste);
$pass = $teste['hashedpassword'];
if (password_verify('pass', $pass)) {
echo 'Password is valid!';
} else {
echo 'Invalid password.';
}
so me retorna invalido. function read esta funcionando, se eu printar o resultado da hashedpassword ele retorna os dados do banco ok. minha duvida e como comparar a senha texto com o banco, se é com o hash ou com o salt ou com os dois junto e como. desde ja obrigadoDiscussão (0)
Carregando comentários...