Indholdsfortegnelse

Opbevaring af passwords i en database

Når man laver et login‑system, må man aldrig gemme passwords i klar tekst i databasen. Hvis databasen bliver stjålet, vil alle brugeres passwords ellers være synlige.

I stedet bruger man disse principper:


Hvad er hashing?

En hash er resultatet af en énvejskryptering:

Eksempel:

Password:  "hemmeligt123"
Hash:      "A94A8FE5CCB19BA61C4C..."

Når brugeren logger ind:


Hvad er "salt"?

Et salt er en tilfældig tekst, som lægges sammen med passwordet før hashing.

Eksempel:

Password:  hemmeligt123
Salt:      X7f@9Q!
Resultat:  hemmeligt123X7f@9Q!

Det samlede resultat hashes derefter.


Hvorfor bruger man salt?

Salt forhindrer to vigtige angreb:

Uden salt:

"1234" → samme hash for alle brugere 

Med salt:

"1234" + saltA → hash1
"1234" + saltB → hash2 

Selv om to brugere har samme password, får de forskellige hashes.


Hvordan gemmes det i MariaDB?

I databasen gemmer man typisk:

* `PasswordHash` * `Salt`

Eksempel på tabel:

id | username | password_hash | salt

Man gemmer aldrig selve passwordet.


Kort C#‑tanke (uden kode)

I C# gør man typisk:

Ved login:

***