Autor | Zpráva | ||
---|---|---|---|
Vilak Profil |
#1 · Zasláno: 6. 5. 2016, 21:02:53
Zdarec. Mám registraci a v ní 2 pole pro hesla. Tato hesla zahashuju pomocí password_hash, ale nerovnají se pak. Jakto?
Code je samozřejmě zkrácený a je vyjmutý pouze syntax pro hesla. $password1 = htmlspecialchars(trim($_POST['password1'])); $password2 = htmlspecialchars(trim($_POST['password2'])); $password1 = password_hash($password1, PASSWORD_DEFAULT); $password2 = password_hash($password2, PASSWORD_DEFAULT); Předem děkuji za odpovědi. |
||
juriad Profil |
Vilak:
Při registraci ověřuj, že $_POST['password1'] == $_POST['password2']
Do databáze ulož password_hash($_POST['password1']) .
Při kontrole zkontrolu, že password_verify($_POST['password'], $user['hash']) je true.
password_hash vrátí vždy jinou hodnotu. Je to záměr, protože k samotnému heslu ještě přilepí náhodnou sůl. trim u hesla může být užitečný, ale raději bych heslo ponechal přesně tak, jak jej uživatel zapsal, včetně mezer. htmlspecialchars je ale úplně blbost. Heslo přece nikdy nebudeš vypisovat do HTML. Dokonce jediné, co s ním uděláš, je, že zkontroluješ jeho vlastnosti (osobně bych kontroloval jen neprázdnost a v JS uživateli napověděl, jak je silné) a předáš funkci password_hash. |
||
Vilak Profil |
#3 · Zasláno: 6. 5. 2016, 21:15:28
Áha, už chápu. Díky. Zkusím a myslím, že vyřešeno. :)
|
||
visionic Profil * |
#4 · Zasláno: 8. 5. 2016, 19:10:21
jeste bych udělal počet znaků minimum.
|
||
Keeehi Profil |
#5 · Zasláno: 8. 5. 2016, 23:31:47
visionic:
„jeste bych udělal počet znaků minimum.“ Máš k tomu nějaký rozumný důvod? Pokud si uživatel myslí že třeba jednoznakové heslo je dostatečně bezpečné heslo tak OK, já mu v tom bránit nebudu. Třeba moje hesla obsahují jen malé znaky abecedy a číslice. Ale jsou mnohem bezpečnější než hesla která používají lidé na stránkách které je nutí třeba do velkých malých písmen, čísel a speciálních znaků. |
||
Martin2 Profil * |
#6 · Zasláno: 9. 5. 2016, 00:57:14
Keeehi:
„Pokud si uživatel myslí že třeba jednoznakové heslo je dostatečně bezpečné heslo tak OK, já mu v tom bránit nebudu.“ Tady hodně záleží na zaměření aplikace/webu. Povědomí o datové bezpečnosti je u laické veřejností bídné, nějaká politika síly hesel může být na místě. Je samozřejmě dobré, když ta politika zohledňuje skutečnou sílu (entropii) hesla a nevyžaduje zbytečně nesmysly typu „heslo musí obsahovat jedno řecké písmeno a severskou runu“. |
||
Časová prodleva: 9 let
|
0