Gesaltte wachtwoorden

Hulp nodig bij je installatie of kom je ergens niet uit? Probeer phpBB3! Problemen lossen we samen met je op.
phpBB 3.0 is End of support per 1 januari 2017. Dit forum is hier enkel ter archief. Het wordt aangeraden te upgraden naar phpBB 3.2
Forumregels
phpBB 3.0 is End of support per 1 januari 2017. Dit forum is hier enkel ter archief. Het wordt aangeraden te upgraden naar phpBB 3.2
Gesloten
Robintje1
Berichten: 58
Lid geworden op: 19 aug 2008, 17:53

Gesaltte wachtwoorden

Bericht door Robintje1 » 01 aug 2009, 18:46

  • phpBB versie: 3.0.4
    Wat is de vraag?
Ik wil een soort game maken waarbij men hun forumaccount kan gebruiken. Maar het probleem is dat de wachtwoorden gesalt en geMD5'd zijn. Heeft één van jullie enig idee hoe ik dit kan doen bij een loginsysteem? (De MD5 is geen probleem, maar het salten wel...)

Erik Frèrejean
Berichten: 194
Lid geworden op: 02 apr 2008, 19:29

Re: Gesaltte wachtwoorden

Bericht door Erik Frèrejean » 01 aug 2009, 19:26

Je bedoelt de phpBB wachtwoorden? Deze zijn niet een simpele salt en md5. Het hashing algoritme in phpBB is een stuk complexer en daardoor ook een stuk veiliger. Om een wachtwoord te checken tegen de gehachde variant gebruik de bool phpbb_check_hash (string $password, string $hash) functie die je in "includes/functions.php" kan vinden.
Proud member of the phpBB Afbeelding

Robintje1
Berichten: 58
Lid geworden op: 19 aug 2008, 17:53

Re: Gesaltte wachtwoorden

Bericht door Robintje1 » 01 aug 2009, 20:18

Dus zoiets?:

Code: Selecteer alles

$wachtwoord = "hallo";
$hash = "1245094527";

if(phpbb_check_hash("$wachtwoord","$hash" == true)) {
 echo "Goed!";
} else {
 echo "Fout!";
}
Of moeten de double-quotes weg?
En... De $hash komt uit de kolom user_passchg.
Ofwel heb ik het niet goed gelezen...

Erik Frèrejean
Berichten: 194
Lid geworden op: 02 apr 2008, 19:29

Re: Gesaltte wachtwoorden

Bericht door Erik Frèrejean » 02 aug 2009, 00:05

Nee, de hash die je als tweede argument geeft is de hash zoals hij is opgeslagen in de gebruikers tabel van je phpBB installatie, het wachtwoord is hetgeen de gebruiker invoert tijdens het inloggen.
Voorbeeld:

Code: Selecteer alles

$pass = request_var('password', '', true);
$user = request_var('username', '', true);

// Selecteer de hash
$sql = 'SELECT user_id, user_password
   FROM ' . USERS_TABLE . "
   WHERE username_clean = '" . $db->sql_escape(utf8_clean_string($user)) . "'";
$result = $db->sql_query($sql);
if ($userrow = $db->sql_fetchrow($result))
{
   if (phpbb_check_hash($pass, $userrow['user_password']))
   {
      trigger_error('Ingelogd');
   }
   else
   {
      trigger_error('Incorrect wachtwoord');
   }
}
else
{
   trigger_error('Gebruiker bestaat niet');
}
$db->sql_freeresult($result); 
Even snel opgeschreven dus er kunnen fouten in zitten ;)
Proud member of the phpBB Afbeelding

Robintje1
Berichten: 58
Lid geworden op: 19 aug 2008, 17:53

Re: Gesaltte wachtwoorden

Bericht door Robintje1 » 02 aug 2009, 10:00

Oké... Wat zijn die variabelen $db enz.? =P
(Heb al met veel gewerkt in PHP, maar met die '->' nog nooit... :P)

Erik Frèrejean
Berichten: 194
Lid geworden op: 02 apr 2008, 19:29

Re: Gesaltte wachtwoorden

Bericht door Erik Frèrejean » 02 aug 2009, 12:06

$db bevat het phpBB DBAL object, deze wordt gebruikt door phpBB om met de database te communiceren.

http://nl.php.net/oop
Proud member of the phpBB Afbeelding

Robintje1
Berichten: 58
Lid geworden op: 19 aug 2008, 17:53

Re: Gesaltte wachtwoorden

Bericht door Robintje1 » 02 aug 2009, 14:50

Ah ok... Dus kan ik eigenlijk de code gewoon overnemen?

Erik Frèrejean
Berichten: 194
Lid geworden op: 02 apr 2008, 19:29

Re: Gesaltte wachtwoorden

Bericht door Erik Frèrejean » 02 aug 2009, 14:52

Ja, indien je de phpBB sessies gebruikt dan wel. Als je dat niet doet is het iets lastiger om de phpBB APIs te gebruiken.
Proud member of the phpBB Afbeelding

Robintje1
Berichten: 58
Lid geworden op: 19 aug 2008, 17:53

Re: Gesaltte wachtwoorden

Bericht door Robintje1 » 02 aug 2009, 14:55

En includes/functions.php includen? Dan zou het moeten werken? En wat is die request_var?

Gesloten