Hashen in php

Status
Niet open voor verdere reacties.

JeroenE

Terugkerende gebruiker
Lid geworden
20 mrt 2005
Berichten
1.950
Ik ben op zoek naar de beste manier om paswoorden te hashen, maar ik geraak niet echt wijs uit wat op php.net uitgelegd staat omdat ik daar het gevoel heb dat je tijdens het volgen van links telkens in een cirkel naar dezelfde informatie gestuurd wordt.

Wie kan het mij in wat meer leken-taal uitleggen?

Alvast bedankt.
 
Heel simpel, gebruik gewoon:

password_hash() om een hash te genereren.
password_verify() om een password met een hash te controleren
 
Dankjewel, Aar, voor zo'n snel antwoord.
Toen ik dat allemaal las op php.net, dacht ik dat er veel meer bij kwam kijken met een salt ofzo die je moest toevoegen.
Ik probeer het direct.
 
Schitterend.
Dankjewel, Aar.
Soms zoek ik het gewoon veel te ver.
 
Een salt kan je toevoegen om het veiliger te maken.
Hoeft niet per se, maar als je dat doet moet je bestaande hashes wel weer weggooien omdat die toch niet meer werken.
 
Op deze pagina staat "password_hash() will create a random salt if one isn't provided". Dit is vanaf php5.5 omdat sinds deze php versie het bcrypt algoritme wordt gebruikt voor password_hash() . Je hoeft zelf dus geen eigen salt string te maken.

Als je een eigen salt string maakt heeft dit als nadeel dat jouw salt in een bestand of in de database moet worden opgeslagen en dat is minder veilig.
 
Laatst bewerkt:
Ik had al een eigen salt toegevoegd, maar vandaag werkt het niet meer terwijl het gisteren perfect werkte.
Enig idee wat er misloopt?
 
Ik heb het probleem ondertussen gevonden.
Ik had de salt onder een verkeerde variable naam in de password_hash gestoken. :rolleyes: :eek:
 
BCrypt is een sterk salt/hash algoritme en zit standaard in password_hash(). Vanaf php 7.0 is de mogelijkheid om zelf een salt hieraan toe te voegen deprecated.

Dit is voldoende en veilig.
PHP:
$password = 'hallo';
$hash_pw  = password_hash($password, PASSWORD_DEFAULT);

// hash met random salt
echo $hash_pw . '<br>' . strlen($hash_pw) . '<br>';

if (password_verify($password, $hash_pw))
    echo 'pw is goed';
else
    echo 'pw is fout';
 
Laatst bewerkt:
Ik heb mijn eigen salt eruit gehaald.

Dankjewel, bron en Aar, voor de hulp en raad.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan