Hashovaní hesla vrací vždy jiný otisk

krata
Člen | 4
+
0
-

Ahoj,
prosím o radu. Podle dokumentace zahashuji heslo

$passwords = new Passwords(PASSWORD_BCRYPT, ['cost' => 12]); // Zahashuje heslo 12 iteracemi algoritmu bcrypt
$hash = $passwords->hash($password); // Zahashuje heslo

a otisk uložím do databáze. Potom při přihlašování zahashuji zadané stejné heslo, ale otisk je jiný. Co dělám špatně?
Děkuji za odpověď Jarda

chemix
Nette Core | 1310
+
+3
-

@krata imho to je spravne chovani, protoze kdyz to hashujes tak se k tomu vytvari nahodna sul) ty si cely ten vraceny string ulozis a v nem je i zakomponovana ta „sul“ (presne nevim ktera cast to je, ale da se to dohledat) pro validaci hesla se pak pouziva metoda verify viz dokumentace ta uz by si s tim mela poradit (dekodovat co z toho stringu je sul a co hash)

h4kuna
Backer | 740
+
+2
-

Když máš stále stejný hashe, tak pak si teoreticky můžeš vyrobit databázi se všemi kombinacemi „abecedy/znaků“ a převést je na hash. Pak touto databází prohnat ukradenou databázi a tím získáš hesla. Proto se hesla solí.

Editoval h4kuna (25. 2. 2020 19:08)