Permalänk
Medlem

Kryptera lösenord i php

Är ganska ny inom php och sitter nu och funderar på kryptering av lösenord. Sitter just nu med en uppgift där jag ska skapa en komplett inloggningssida och då även tänka på säkerheten. Är det md5 som gäller? Har för mig att jag har läst någonstans att det kan vara ganska lätt att ta sig runt! Andra förslag (gärna någon länk som förklara lite mer i så fall:)) Tack!

Permalänk
Medlem
Visa signatur

Spela Swemantle! Du vet att du vill.

Ibland har jag fel, men då är det någon annans fel.

Permalänk
Medlem

SHA är det som gäller, och glöm inte salta skiten! https://en.wikipedia.org/wiki/Salt_%28cryptography%29

Permalänk
Medlem

Första svaret här ger några bra riktlinjer.

Så med andra ord är scrypt det som gäller idag. Men om du inte har möjlighet till detta så kör något av de mindre säkra lösningarna men använd inte md5 eller sha1 om du inte har ett webbhotell som inte ger dig tillgång till vettiga algoritmer. ( i så fall bör du byta webbhotel:P).

Visa signatur

Dator: Ryzen 5900X, 32GB RAM, RTX3080
Ljud: SMSL SU-8, HDVA600, HD800.

Permalänk

Vilken version av PHP kör du? Antar att du vill hasha med tanke på att du nämner MD5? Kryptering är byggt så att man ska kunna få fram orginalet, hashing är menat att vara envägs.

Man brukar säga att MD5, tillsammans med många andra algorithmer är osäkra då de finns en chans att det sker kollisioner. Alltså två inputs som ger samma output. Om input är kortare än output. (Förenklat, kan inte förklara nogrannare än så just nu utan att läsa på.) Kollisioner är ett stort problem om en av inputs är kortare än den andra, vilket gör att ett brutforce försök går snabbare. Samt att ett lookuptable kommer kunna vara mindre. Ett annat problem med vanliga hashingalgoritmer, även de som inte är sårbara för kollisioner, är att de är snabba. Vilket gör det enkelt att gå igenom alla kombinationer av tecken för att bryta upp lösenordet. Det är där bcrypt kommer in. http://stackoverflow.com/questions/4795385/how-do-you-use-bcr...

Som det står i länken så kommer det finnas en enklare väg i PHP 5.5. Därför ville jag veta vilken version du använder/tänker använda.

Permalänk
Medlem

Bcrypt är ju att föredra, men jag kan tänka mig att det är krångligt att förstå sig på för en nybörjare.

Skickades från m.sweclockers.com

Visa signatur

-- Arkade --

Permalänk
Hedersmedlem
Skrivet av martinrlilja:

http://stackoverflow.com/questions/4795385/how-do-you-use-bcr...

Som det står i länken så kommer det finnas en enklare väg i PHP 5.5. Därför ville jag veta vilken version du använder/tänker använda.

Tipsen i den frågan är mycket bra, speciellt det där om `password_hash()`-funktionen. Notera också det bibliotek som nämns för att backporta denna funktion till PHP 5.3.7 och framåt.

Att sköta ordentlig hashning är både väldigt enkelt och väldigt komplicerat. Det är komplicerat bortom rimlighet att göra ett eget robust system, men det är (åtminstone "kan vara") väldigt enkelt att använda färdiga bibliotek där många har tänkt på mängder med små potentiella problem. `password_hash()` ser bra nog ut för att vara de facto-metoden i PHP framöver. Kompatibilitetsbiblioteket ovan är också en mycket bra lösning, då det egentligen bara rakt av emulerar det som `password_hash()` gör i en modern standardinstallation — är det en bugg i detta separata bibliotek så finns den troligen i standardbiblioteket också, och kan fixas på båda ställena.

Visa signatur

Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.

Permalänk
Medlem

Tack för alla svar! Fortsätt gärna diskutera så ska jag prova mig fram!