Ik heb de volgende testcode:
Hierbij is de hash (qwertyuiopasdfghjklzx) 21 letters lang. Het resultaat van de check is FALSE. Bij elke andere lengte is deze TRUE.
Ik verwachtte bij de crypt functie elke lengte salt in te kunnen voeren, alle lengte die ik probeer werkt wel goed, behalve 21. (te korte worden aangevuld, te lange worden ingekort).
Heeft iemand een idee hoe dit zit? Het is natuurlijk op te lossen door een salt van niet-21 letters te selecteren, maar ik vind het vreemd.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
| <? $seed = './ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; $pass = 'test'; $hashprefix = '$2y$10$qwertyuiopasdfghjklzx'; $hash = crypt($pass, $hashprefix); $check = crypt($pass, $hash) === $hash; echo "Hash: $hash\n"; echo "Check: " . ($check ? 1 : 0) . "\n"; |
Hierbij is de hash (qwertyuiopasdfghjklzx) 21 letters lang. Het resultaat van de check is FALSE. Bij elke andere lengte is deze TRUE.
Ik verwachtte bij de crypt functie elke lengte salt in te kunnen voeren, alle lengte die ik probeer werkt wel goed, behalve 21. (te korte worden aangevuld, te lange worden ingekort).
Heeft iemand een idee hoe dit zit? Het is natuurlijk op te lossen door een salt van niet-21 letters te selecteren, maar ik vind het vreemd.
Solar @ Dongen: http://solar.searchy.net/ - Penpal International: http://ppi.searchy.net/