Ako na správne porovnanie hesla?
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- SontoEremo
- Člen | 341
Zdravím…
Viem, že moje témy a otázky znejú hlúpo ale predsa sa musím niekoho
spýtať…
Môj problém je v tom, že sa snažím porovnať heslo v DB zahashované
týmto spôsobom:
Registrácia
public function passwordHasher($password, $salt = null)
{
return crypt($password, $salt ?: '$2y$07$' . Strings::random(22));
}
Pri logine používam na rozpoznanie zahashované hesla tento spôsob:
public function passwordLogin($password, $salt = NULL)
{
if($salt === NULL)
{
$salt = '$2y$07$' . Strings::random(22);
}
return crypt($password, $salt);
}
dumpol som si pre porvnanie obe heslá
v DB je $2y$07$tdbnpny5epavdcnrlfi7hu0FM
A moje výsledky sú na heslo 123456:
"$2y$07$tdbnpny5epavdcnrlfi7hu0FM" (32) <---> OK
"$2y$07$dgwpauy9y3b44lt6p1x7hev8vIoXzlOikBmxaI7Sg8/zWJqHiLxli" (60) <---> Nechápem prečo je to rozdielne a Nerozumiem kde sa beria aj ta (60) ?
Sorry sa túto hlúpu tému
A všetky vopred ďakujem za pomoc.
- SontoEremo
- Člen | 341
matej21 napsal(a):
ze ty mas v databazi varchar(32)?
Mal som aj varchar(60)!
Ale žiadny efekt
- David Matějka
- Moderator | 6445
ten prvni hash o delce 32 je totiz spatne, spravne ma mit delku 60. takze v databazi musis mit bezpodminecne varchar(60)