nu ik snap het nut van de $user_salt echter wel, zo is niet elke hash hetzelfde (ook niet als er gebruikers zijn met eenzelfde paswoord). Maar het nut ontgaat me toch een beetje. Aangezien ik bij de login het wachtwoord moet kunnen terugvinden, heb ik de $user_salt ook nodig. Dus als ik het goed begrijp, dan moet ik deze bijhouden in een DB, wat is dan nog het nu ?
Begrijp ik het nu fout of niet? Kan iemand me hier even duidelijkheid brengen?
je hebt inderdaad een punt als je zegt dat wanneer je je salt wil veranderen je miserie hebt. Langs de andere kant kan je ook met een array werken met bv 10 strings in dan is het nog moeilijker :-)
Als je nu eens altijd versleuteld met het IP vanwaar de account geregisteerd word,
Dat gegeven moet nooit veranderd worden, Kan opgeslagen worden ook in db om te decoderen.
En is een op elke account veranderende versleuteling :)
oke je laat toe A-Z en 0-9 -_ wellicht als pasword tekens.
<?php
function ValidatePassword($string){
if(preg_match('~^[\w-]{1,}$~D')){
//geldig
}
//blaat...
}
?>
En dan gaan we naar: http://www.asciitable.com/ zie de Dec(imal) column.
1 t/m 44 kunnen we dus gebruiken gezien ze niet in het wachtwoord voorkomen.
127 t/m 255 ook...
Jij weet dat... iemand anders niet natuurlijk...
Oke dan kan je die ASCII tekens dus random in het password gaan strooien..
En er ook weer uit filteren.
Dat is mijn random salt basis curses denk ik.
<?php
$chars = array_rand(
array_merge(
range(1, 44),
range(127, 255)
),
5);
//nou heb je 5 random extended ASCII nummers die je dan weer random in een string kan gooien middels http://nl.php.net/manual/en/function.chr.php
?>
?
Onbekende gebruiker
07-08-2009 16:46
Zolang je de salt maar niet "static" of "dynamic" gaat opslaan (in raw formaat), want dan kunnen er problemen ontstaan. Vooral de tekens 1 tm 44 kunnen niet "opgeslagen" worden. Je kan het wel als extra laag salting opnemen in de hash :-)