Visa ett inlägg
Oläst 2008-07-27, 23:47 #4
SimonPs avatar
SimonP SimonP är inte uppkopplad
Mycket flitig postare
 
Reg.datum: May 2006
Inlägg: 832
SimonP SimonP är inte uppkopplad
Mycket flitig postare
SimonPs avatar
 
Reg.datum: May 2006
Inlägg: 832
Citat:
Originally posted by dimka@Jul 27 2008, 23:30
Jag tycker att osCommerce funktion att kryptera lösenord är bäst!

Citat:

function encrypt_password($plain) {

$password = '';

for ($i=0; $i<10; $i++) {
* $password .= tep_rand();
* // tep_rand() returnerar ett slumpvis tioställigt numeriskt värde (ex. 3541976724)
* // utifrån php-funktionerna nedan;
* // mt_srand((double)microtime()*1000000);
* // mt_rand();
}

// utifrån det slumpade "lösenordet" ovan hämtas saltet
$salt = substr(md5($password), 0, 2);

$password = md5($salt . $plain) . ':' . $salt;

return $password;

}
Det är inte bra att lägga saltet först som dom gör här: md5($salt . $plain) , eftersom en bruteforce attack blir enklare då, saltet skall läggas sist eller på båda sidorna om lösenordet.

Längden på saltet bör ligga på mer än 2 bytes, för att förhindra dom som sitter på regnbågstabeller där man även "inkluderat" salt, men samtidigt är det onödigt ha en större salt än hashalgoritmens egna styrka, i md5:s fall 16 bytes (32 st hex).
SimonP är inte uppkopplad   Svara med citatSvara med citat