Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Brukerkontroller:
- [ValidateAntiForgeryToken]
- [HttpPost]
- public ActionResult RegistrerBruker(BRUKER innBruker)
- {
- if (!ModelState.IsValid)
- {
- return View();
- }
- using (var db = new RetroDb())
- {
- try
- {
- var nyBruker = new DBBRUKER();
- nyBruker.EPOST = innBruker.EPOST;
- byte[] salt = lagSalt();
- byte[] passordDb = lagHash(innBruker.PASSORD, salt);
- nyBruker.SALT = salt;
- nyBruker.PASSORD = passordDb;
- db.Brukere.Add(nyBruker);
- db.SaveChanges();
- return RedirectToAction("IndexBruker");
- }
- catch (Exception feil)
- {
- Debug.Write(feil);
- return View();
- }
- }
- }
- private static byte[] lagHash(string innPassord, byte[] innSalt)
- {
- const int keyLength = 24;
- var pbkdf2 = new Rfc2898DeriveBytes(innPassord, innSalt, 1000); //Hashes 1000 ganger
- return pbkdf2.GetBytes(keyLength);
- }
- private static byte[] lagSalt()
- {
- var csprng = new RNGCryptoServiceProvider();
- var salt = new byte[24];
- csprng.GetBytes(salt);
- return salt;
- }
- RetroDB:
- public class dbBruker
- {
- [Key]
- public string Navn { get; set; }
- public byte[] Passord { get; set; }
- public byte[] Salt { get; set; }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement