Advertisement
Guest User

Untitled

a guest
Oct 18th, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.68 KB | None | 0 0
  1. Brukerkontroller:
  2. [ValidateAntiForgeryToken]
  3. [HttpPost]
  4. public ActionResult RegistrerBruker(BRUKER innBruker)
  5. {
  6. if (!ModelState.IsValid)
  7. {
  8. return View();
  9. }
  10. using (var db = new RetroDb())
  11. {
  12. try
  13. {
  14. var nyBruker = new DBBRUKER();
  15. nyBruker.EPOST = innBruker.EPOST;
  16. byte[] salt = lagSalt();
  17. byte[] passordDb = lagHash(innBruker.PASSORD, salt);
  18. nyBruker.SALT = salt;
  19. nyBruker.PASSORD = passordDb;
  20. db.Brukere.Add(nyBruker);
  21. db.SaveChanges();
  22. return RedirectToAction("IndexBruker");
  23. }
  24. catch (Exception feil)
  25. {
  26. Debug.Write(feil);
  27. return View();
  28. }
  29. }
  30. }
  31.  
  32. private static byte[] lagHash(string innPassord, byte[] innSalt)
  33. {
  34. const int keyLength = 24;
  35. var pbkdf2 = new Rfc2898DeriveBytes(innPassord, innSalt, 1000); //Hashes 1000 ganger
  36. return pbkdf2.GetBytes(keyLength);
  37. }
  38.  
  39. private static byte[] lagSalt()
  40. {
  41. var csprng = new RNGCryptoServiceProvider();
  42. var salt = new byte[24];
  43. csprng.GetBytes(salt);
  44. return salt;
  45. }
  46.  
  47. RetroDB:
  48.  
  49. public class dbBruker
  50. {
  51. [Key]
  52. public string Navn { get; set; }
  53. public byte[] Passord { get; set; }
  54.  
  55. public byte[] Salt { get; set; }
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement