md5 kun je er beter uitslopen. sha1 met je eigen salt is genoeg. Waarschijnlijk stel je jezelf de vraag hoe je beveiliging beter kan maar vergeet je de voordeur van een goed slot te voorzien. Wat ik bedoel te zeggen is dat de zwakste schakel de sterkte van de beveiliging bepaalt. Bijvoorbeeld: Als je jouw salt in een php bestand zet in een goed geconfigureerde webserver dan zal die vanuit de browser niet te achterhalen zijn. Echter wanneer je een zwak wachtwoord gebruikt voor jouw FTP server en een hacker kan daar op inbreken dan is jouw beveiliging - hoe goed je die ook gemaakt hebt - in één klap helemaal waardeloos. Immers kun je vanuit FTP de inhoud van jouw PHP bestanden gewoon downloaden en lezen. Hetzelfde geldt voor je login van je admin panel.
Dus alleen de sha1 + salt ( is de salt die ik gebruik niet erg lang? of maakt dit niet uit en zijn bijvoorbeeld 7 leestekensen en letters voldoende.
In iedergeval bebankt voor de duidelijke uitleg!
?
Onbekende gebruiker
08-03-2013 00:00
gewijzigd op 08-03-2013 00:11
Zelf doe ik het meestal op de volgende manier. De gebruiker heeft een id die ik in combinatie met een salt gebruik als key. Daarna haal ik het door hash_hmac en dan is het wachtwoord beveiligd.
<?php
# Gebruiker als voorbeeld in een array:
$user['id'] = 2;
$user['password'] = 'Kikker123';
# Nu de gegevens door hash hmac halen:
echo hash_hmac('sha512', $user['password'], '@SuperGeheimeCode@'.$user['id'], false);
?>
Ook verplicht ik op een zekere manier de gebruikers om een stevig wachtwoord te kiezen met minstens één cijfer en één hoofdletter.
@Ozzie: Ozzie dit is een generator voor een willekeurige string. Die string copy-paste je gewoon in je config.php file.
<?php
$salt = 'Ht%79enzonogmeerrarekarakters';
?>
@Marvin: Ik zou de salt niet in de database opslaan. als een hacker in je database is binnengedrongen dan loopt ie tegen gecodeerde wachtwoorden aan en heeft ie gelijk wat ie nodig heeft om ze te decoderen. Gewoon in PHP laten staan.
Ik begrijp je niet helemaal. Je schrijft 1 code om een salt te maken, en die ene salt sla je op in je config file? Dan kun je die salt toch ook gewoon zelf verzinnen?