sql >> Databasteknik >  >> RDS >> Mysql

Användarnamn, Lösenord, Saltning, Kryptering, Hash – Hur fungerar det hela?

Om du utesluter captchas, prova limits, lockouts, et cetera... då ja. Du behöver bara brute force den vanliga textsträngen.

Det tar dock tid - Åtminstone är det begränsat av den hastighet med vilken servern kommer att svara på inloggningsförfrågningar. Även om utvecklaren inte lägger till några åtgärder för att förhindra brute forcering, kan servern själv bara gå igenom kryptering + verifieringsprocessen så snabbt, och kan bara hantera så många parallella förfrågningar.

Som sagt, det är därför det är viktigt att

  • Som användare ska du använda ett starkt lösenord som är svårt att tvinga fram
  • Som utvecklare, ha lämpliga åtgärder för att förhindra brute-forcing av din inloggningsprocess

Hashing och saltning av lösenord är inte för att skydda mot människor som brutalt tvingar den naturliga inloggningsprocessen (det finns andra saker som skyddar mot det). Istället ska de skydda mot potentiella komprometteringar av själva lösenordslagringen (t.ex. att någon dumpar innehållet i databasen).

Både hash och saltning tjänar till att minska hastigheten där någon med åtkomst till de lagrade lösenorden kan hämta den vanliga textsträngen de behöver för att kunna gå igenom den naturliga inloggningsprocessen (på din webbplats eller andra webbplatser , med tanke på att lösenord vanligtvis delas mellan webbplatser) utan att utlösa säkerhetsåtgärder mot brute-forcering.



  1. hämta det nya rad-id:t från pySpark SQL Write till remote mysql db (JDBC)

  2. Flera värdnamn och flera privilegier?

  3. Hur TRIM() fungerar i MariaDB

  4. SQL Server:SUM() av ​​flera rader inklusive where-satser