Visa ett inlägg
Oläst 2008-09-29, 16:24 #43
grinditwp grinditwp är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2008
Inlägg: 320
grinditwp grinditwp är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2008
Inlägg: 320
Citat:
Originally posted by znap@Aug 11 2008, 22:28
Tar tillfället i akt och frågar om denna funktion är en bra lösning. Själv känner jag mig hyffsat noob på det här med säker kryptering av lösenord. Med följande funktion följer jag dessa principer som jag snappat upp på lite här och där på nätet.

- Blanda md5 och sha1
- Kryptera flera gånger om
- Använd ett dynamiskt salt kopplat till användarens lösenord
- Använd även ett statiskt salt som man "gömmer" någonstans i applikationskoden

Kod:
	function generatePassword($password, $salt) {
 *$str = md5($password.$salt);
 *for($i=0; $i<5; $i++) {
 *	$str = sha1($str);
 *}	
 *return md5($salt.($str).$salt.STATIC_SALT);	
	}
Är något onödigt? Är det något annat jag bör tänka på?

// Vic
Att dubbel hasha ett lösenord är ingen bra idé.
Vad som sker är att du tar ett lösenord och skapar en sträng på exakt 32 tecken med enbart 0-9 och a-f. Hashar du detta igen ökar du chansen att man kan gissa en sträng som kommer att hasha fram samma värde.

Ännu värre blir det om du blandar sha1 och md5, t.ex. sha1(md5($pass))
Vad du då gör är att ta 128-bitars information för att skapa 256-bitar, vilket betyder att det blir 50% överflödig information.

Allt detta bidrar bara till att det är enklare att skapa en hash kollision. Alltså att två fraser kan bli samma hash.

Rätta mig om jag har fel!
grinditwp är inte uppkopplad   Svara med citatSvara med citat