Mål: At kunne lave et helt basic login/registeringssystem fra bunden, med mit eget password hashing, og en database lavet med EntityFramework. Siden skal være uden beskyttelse endnu, så den er nem at kunne hacke.

Jeg har lavet et helt basic Blazor Server projekt, hvor jeg har lavet en login side, registrerings side, og en navigation bar hvor du kan se at du er logget ind, og med hvilken mail. Den del af projektet som er især vigtig er der hvor jeg laver al logik til at beskytte brugere, hvilket sker i min UserManager.cs.

Dette er min kode for hvordan jeg registrer en ny bruger, og det vigtigste i denne funktion er hvor jeg hasher adgangskoden. Som er mit eget class library som hedder CustomHashing, der har jeg en static funktion som hedder HashPassword, som er en virkelig simpel og ikke særlig sikker hashing algoritme.

Jeg lavede en lille demo af siden, hvor jeg laver en test bruger med email [email protected], og kodeordet 1234. Når den kommer op i databasen ser det sådan her ud.

Som man kan se bliver kodeordet hashet, men det er et meget simpelt hash, og ikke særlig sikkert. Men det er pointen med det, for så kan jeg selv prøve at hacke og dernæst forbedre sikkerheden hen ad vejen, så jeg kan fornemme hvilken forskel det gør.


Jeg har så senere fået implementeret BCrypt ind i projektet istedet, for at gøre hashing af adgangskoder lidt mere sikkert, ved hjælp af BCrypt’s hashing algoritme og salt.

Så har jeg så været inde og opdatere min Register og SignIn metoder så de bruger BCrypt istedet, da man skal bruge en indbygget metode kaldet BCrypt.Verify([text], [hash]). Denne metode tager så og tjekker om det man har indtasted i login er har samme hash som den der ligger i databasen.

Alt dette gør den hashede kode noget mere kompleks, og gør den derfor mere sikker.