You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Här följer frågor och svar kring lösenordshanteringen i PHP. Följande dialog är mellan två studenter i chatten.
testar att hasha ett lösenord med password_hash("test", PASSWORD_DEFAULT). kör jag echo på det så får jag en viss hashsträng, trycker jag F5 får jag en annan hashsträng. så ska det väl inte vara, eller tänker jag fel?
Värdet hashas tillsammans med ett slumpmässigt s.k. salt för att förhindra att en angripare kan identifiera lösenorden genom att i förväg beräkna hasharna för de vanligaste lösenorden. Se dokumentationen: https://www.php.net/manual/en/function.password-hash.php
mhmm jag förstår, tack! tänkte att jag kunde jämföra $hashatLösenordFrånAnvändare === $sparadHashDatabas, men man är tvungen att använda password_verify() för det.
så password_verify måste ju på något sätt avsalta och sedan jämföra hasharna.
och de hashar som kom med för testanvändarna i databasen måste ju vara avsaltade också va?
Det stämmer huvudsakligen som du tänkt, men det kompliceras lite av att saltet måste hanteras, vilket är anledningen till att de snällt nog ger oss password_verify. Värdet som lagras i databasen är inte bara hashen utan också saltet (och några andra saker). Man verifierar genom att jämföra hasharna, som du tänkt, men man måste ta det ursprungliga saltet ur databasen och använda det i hashningen för att få samma värde. (Plus andra komplikationer som man inte vill implementera själv och riskera att få fel.)
det här känns som en sak jag bara får acceptera, men förstår inte hur det salt som använts för att hasha lösenorden i databasen kan inkluderas i en 60 tecken lång hash och sen på något automagiskt sätt identifieras av password_verify för att avsalta utan att en angripare med enkelhet också kan göra exakt samma sak.
den här apan tänker nöja sig med att password_hash och password_verify existerar och fungerar för ikväll hehe
Hanteringen av hashningen försöker undvika problem som innebär att ett lösenord alltid genererar en specifik hash. Lite som i rainbow tables.
The text was updated successfully, but these errors were encountered:
Här följer frågor och svar kring lösenordshanteringen i PHP. Följande dialog är mellan två studenter i chatten.
Värdet hashas tillsammans med ett slumpmässigt s.k. salt för att förhindra att en angripare kan identifiera lösenorden genom att i förväg beräkna hasharna för de vanligaste lösenorden. Se dokumentationen: https://www.php.net/manual/en/function.password-hash.php
Det stämmer huvudsakligen som du tänkt, men det kompliceras lite av att saltet måste hanteras, vilket är anledningen till att de snällt nog ger oss password_verify. Värdet som lagras i databasen är inte bara hashen utan också saltet (och några andra saker). Man verifierar genom att jämföra hasharna, som du tänkt, men man måste ta det ursprungliga saltet ur databasen och använda det i hashningen för att få samma värde. (Plus andra komplikationer som man inte vill implementera själv och riskera att få fel.)
Hanteringen av hashningen försöker undvika problem som innebär att ett lösenord alltid genererar en specifik hash. Lite som i rainbow tables.
The text was updated successfully, but these errors were encountered: