[PHP] Blowfish crypt met salt van 21 lang

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Keiichi
  • Registratie: Juni 2005
  • Laatst online: 19-09 22:32
Ik heb de volgende testcode:

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/


Acties:
  • 0 Henk 'm!

  • Barryvdh
  • Registratie: Juni 2003
  • Laatst online: 20:31
Heb je gezocht op google? Zoeken naar 'crypt 21 characters php' geeft als eerste 2 hits:
http://security.stackexch...t-as-it-would-be-too-long en http://stackoverflow.com/...ish-produces-weird-output

Maar ga niet zelf salts zitten maken, gebruik de password api (met password_hash, of https://github.com/ircmaxell/password_compat totdat dat beschikbaar is op je php versie) (Toevallig beiden van dezelfde persoon als degene die antwoord geeft in de 2de link)

[ Voor 8% gewijzigd door Barryvdh op 25-03-2014 13:50 ]


Acties:
  • 0 Henk 'm!

  • Keiichi
  • Registratie: Juni 2005
  • Laatst online: 19-09 22:32
Ik denk het ongeveer te begrijpen.

Wat ik dan vervolgens niet begrijp, is waarom PHP niet met flinke errors op de proppen komt als er iets niet juist zit. Heb hetzelfde onder php geprobeerd ( http://www.perlmonks.org/?node_id=731919 ) en daar worden geen fouten in de salt/methode toegelaten.

Solar @ Dongen: http://solar.searchy.net/ - Penpal International: http://ppi.searchy.net/


Acties:
  • 0 Henk 'm!

  • Barryvdh
  • Registratie: Juni 2003
  • Laatst online: 20:31
Dat is denk ik meer voor in een andere discussie ;) Vergelijkbaar met Barryvdh in "Wat is er mis met PHP?"

Op het blog van ircmaxell staan wat meer dingen om op te letten: http://blog.ircmaxell.com...s-to-screw-up-bcrypt.html
Met een belangrijke conclusie:
Just use a library. Seriously, it's not worth constantly re-writing it. Just use one...
En die library is imho: https://github.com/ircmaxell/password_compat

Acties:
  • 0 Henk 'm!

  • Stemis
  • Registratie: Juli 2013
  • Laatst online: 14-09 18:00
ignore

[ Voor 113% gewijzigd door Stemis op 27-03-2014 00:10 ]