Я реализовал traccar для входа в систему из этой ссылки , но почему хешируется не то же самое и всегда возвращает false?
код:
$email = $this->param['email'];
$password = $this->param['password'];
$qselect ='SELECT u.id as uid, u.name as uname, u.hashedPassword as hashed,u.salt,u.admin
FROM users u INNER JOIN users us ON us.id = u.id WHERE us.email = "'.$email.'"';
$row = $this->mysqli->query($qselect)->fetch_array();
$key = $this->hexToStr(trim($row['salt']));
$hashed = hash_pbkdf2("sha1",$password, $key,1000,24,true);
echo $this->strToHex($hashed)."---".$row['hashed']."-----".$row['salt'];
var_dump(trim($this->strToHex($hashed))==trim($row['hashed']));
exit();
if ($this->strToHex($hashed)==$row['hashed']){
$_SESSION['loginstate'] = 1;
echo 1;
}else{
echo 0;
}
результатD33DCA55ABD4CC5BC76F2BC0B4E63FE2C6F61F4C1EF2D47 --- D33DCA55ABD4CC5BC76F2BC0B4E603FE2C6F61F4C1EF2D47 ----- 000000000000000000000000000000000000000000000000bool (ложь)
Как вы можете видеть только разные только один номер, если результат хеширования из БД 63 и хеш-результат от генерации hash_pbkdf2 603,разница равна нулю, любую проблему можно исправить?