werken met "hash bcrypt class encryption"
ik vraag me nu af hoe je eigenlijk een wachtwoord versleuteld naar de database stuurt en hoe je het er opnieuw uithaalt zodat je het kan vergelijken met wat de gebruiker heeft ingevuld als hij wil inloggen.
misschien even verduidelijken:
met md5 vond ik het heel eenvoudig, je kon namelijk onderstaande doen:
en je kon het er ook terug uithalen en verwerken zoals bv:
Code (php)
heeft iemand een voorbeeld van hoe je dit met het nieuwe "hash bcrypt class encryption" kan doen?
alvast bedankt
Gewijzigd op 26/08/2012 17:09:30 door Christof thyssen
http://www.phphulp.nl/php/script/beveiliging/login-systeem/1958/
Heb ik gebruik gemaakt van het hash bcrypt, daar kun je zien hoe je het wachtwoord kunt ophalen en controleren.
Erin zetten is gewoon 'bcrypt()->hash($var)' gebruiken en dan '$var' als jou variabelenaam, (ik heb het gebruikt in een functie) in een registratie formulier.
Bij: Heb ik gebruik gemaakt van het hash bcrypt, daar kun je zien hoe je het wachtwoord kunt ophalen en controleren.
Erin zetten is gewoon 'bcrypt()->hash($var)' gebruiken en dan '$var' als jou variabelenaam, (ik heb het gebruikt in een functie) in een registratie formulier.
Code (php)
Met een ander hashing algoritme gaat het eigenlijk precies hetzelfde.
n.b. Wat mij betreft is MD5 nog steeds heel veilig, als de gekozen wachtwoorden maar lang genoeg zijn, of gesalt worden met een salt van voldoende lengte. Ik blijf bij MD5, ondanks het geroep van een heel aantal andere forumleden.
Gewijzigd op 26/08/2012 17:20:00 door John Berg
alvast bedankt, maar ik vind niet waar je het ophaalt en verder verwerkt
Functies, die ik later include:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
//Functie voor definitie van bcrypt
function bcrypt()
{
static $bcrypt;
if (empty($bcrypt))
{
$bcrypt = new Bcrypt(15);
}
return $bcrypt;
}
//Functie om het wachtwoord te maken
function maak_wachtwoord($wachtwoord)
{
//Maken van de hash voor het wachtwoord
$hmac = hash_hmac('sha512', $wachtwoord, 'thisisaveryverysecretkeyyouknow');
$hash = bcrypt()->hash($hmac);
return $hash;
}
?>
//Functie voor definitie van bcrypt
function bcrypt()
{
static $bcrypt;
if (empty($bcrypt))
{
$bcrypt = new Bcrypt(15);
}
return $bcrypt;
}
//Functie om het wachtwoord te maken
function maak_wachtwoord($wachtwoord)
{
//Maken van de hash voor het wachtwoord
$hmac = hash_hmac('sha512', $wachtwoord, 'thisisaveryverysecretkeyyouknow');
$hash = bcrypt()->hash($hmac);
return $hash;
}
?>
Wachtwoord maken:
Wachtwoord controleren:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
//Verbinding maken met de database
$qGegeven = "SELECT naam,wachtwoord FROM login WHERE naam='".mysql_real_escape_string($_POST['gbnaam'])."' LIMIT 0,1";
$qGegevenquery = mysql_query($qGegeven);
//Controleren op fouten in de verbinding
if ($qGegevenquery === false)
{
echo $sMelding[4];
}
else
{
//Gegevens beschikbaar stellen
$gegevens = mysql_fetch_array($qGegevenquery);
//Wachtwoord verifieren
$verify = controleer_wachtwoord($_POST['hash'], $gegevens['wachtwoord']);
//Controleren of het ingevulde wachtwoord, ook het echte wachtwoord is
if ($verify == 1)
{
//Hier jou tekst bij succesvolle login
}
else
{
//Hier jou tekst bij mislukte login
}
}
?>
//Verbinding maken met de database
$qGegeven = "SELECT naam,wachtwoord FROM login WHERE naam='".mysql_real_escape_string($_POST['gbnaam'])."' LIMIT 0,1";
$qGegevenquery = mysql_query($qGegeven);
//Controleren op fouten in de verbinding
if ($qGegevenquery === false)
{
echo $sMelding[4];
}
else
{
//Gegevens beschikbaar stellen
$gegevens = mysql_fetch_array($qGegevenquery);
//Wachtwoord verifieren
$verify = controleer_wachtwoord($_POST['hash'], $gegevens['wachtwoord']);
//Controleren of het ingevulde wachtwoord, ook het echte wachtwoord is
if ($verify == 1)
{
//Hier jou tekst bij succesvolle login
}
else
{
//Hier jou tekst bij mislukte login
}
}
?>
Allebei bedankt voor de reacties ;)