webForumDet fria alternativet

lösenord, sha1 och salt

PHPur PHP

9 svar · 587 visningar · startad av jme

Medlem sedan maj 20012 237 inlägg
Frågan#1

Just nu har jag lösenorden i klartext i databasen och skall som nästa setg i utvecklingen fixa det lite säkrare.

Har läst att man ska hasha lösenordet med t ex md5() eller sha1().

Sen skall man även salta lösenordet för att man inte skall kunna köra med directory attacks.

Saltet måste ju vara nåt känt värde. Vad vore ett bra värde för att använda som salt? Läste att vissa kör med användarnamnet som salt. När en användare sedan loggar in så läggs hans/hennes användarnamn till lösenordet och som sedan hashas. Är denna hash sedan samma som finns lagrad i databasen så får han/hon logga in.

Tänker jag nu rätt?

Medlem sedan dec. 20003 563 inlägg
#2

Låter alldeles förträffligt rätt. :)

Medlem sedan jan. 20021 122 inlägg
#3

Tänk på att inte skicka lösenordet i klartext till sidan som sedan hashar den bara...

Medlem sedan dec. 200171 inlägg
#4

pettsson skrev:

Tänk på att inte skicka lösenordet i klartext till sidan som sedan hashar den bara...

Det borde väl egentligen inte ha någon betydelse? Skulle någon sniffa lösenordet och försöka sig på en replay-attack, så kan väl denne någon lika gärna skicka vad det nu är för värde som skickas för att bryta sig in.

Medlem sedan jan. 20021 122 inlägg
#5

Jo, men det var mer ett generellt tips, många har bara ett lösenord/användarnamn, onödigt att riskera att det sprids. Kanske overkill?

Medlem sedan dec. 20003 563 inlägg
#6

Tänk på att inte skicka lösenordet i klartext till sidan som sedan hashar den bara...

Det enda vettiga skyddet idag är i sådana fall SSL.

Medlem sedan feb. 20034 441 inlägg
#7

Jag drar upp den här gamla tråden nu, men jag rört ihop det i skallen. När en avändare registrerar sig genereras dels ett lösenord som skickas till användaren i ett mail och dels ett salt som sparas i databasen, saltet är unikt för varje användare.

Lösenordet sparas som md5('passwd' . $salt);.

Hur gör jag när en användare ska logga in? Jag är så jävla dum, har inte tänkt på det här förrän jag försökte logga in en användare. Hur hämtar jag "rätt" salt?

Medlem sedan dec. 20003 563 inlägg
#8

Om saltet är användarnamnet så blir det hashade värdet = md5('passwd' . 'username'). Både username och password får du då från inloggningsformuläret.

Medlem sedan feb. 20034 441 inlägg
#9

Kom ju på att det är bara att hämta salt för just det användarnamnet, det är ju ändå inte tillåtet att flera användare har samma användarnamn.

Medlem sedan feb. 20034 441 inlägg
#10

cyprys skrev:

Om saltet är användarnamnet så blir det hashade värdet = md5('passwd' . 'username'). Både username och password får du då från inloggningsformuläret.

Precis, men nu gjorde jag inte så, utan hämtar istället det sat som finns för den user som försöker logga in.

134 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)