Guest User

Untitled

a guest
Jun 19th, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.78 KB | None | 0 0
  1. // Criptografa a senha
  2. public string GerarMD5(string Senha) {
  3.  
  4. // criptografia MD5
  5.  
  6. MD5 md5Hasher = MD5.Create();
  7.  
  8. // Criptografa o valor passado
  9. byte[] valorCriptografado = md5Hasher.ComputeHash(Encoding.Default.GetBytes(Senha));
  10.  
  11. for (int i = 0; i < valorCriptografado.Length; i++) {
  12. strBuilder.Append(valorCriptografado[i].ToString("x2"));
  13. }
  14.  
  15. // retorna o valor criptografado como string
  16. return strBuilder.ToString();
  17.  
  18. }
  19.  
  20. // Cria usuarioDTO
  21. UsuarioDTO usuarioDTO = new UsuarioDTO()
  22. {
  23. Nome = model.Nome,
  24. SobreNome = model.SobreNome,
  25. Email = model.Email,
  26. Usuario = model.Usuario,
  27. Senha = GerarMD5(model.Senha),
  28. };
  29.  
  30. // Adiciona ao DTO
  31. db.Usuarios.Add(usuarioDTO);
  32.  
  33. // Salva
  34. db.SaveChanges();
  35.  
  36. // Verifica se o valor é compativel com o hash passado
  37. public bool verifyMd5Hash(string valor, string valorCriptografado)
  38. {
  39. // Criptografamos o valor passado como parâmetro
  40. // utilizando o mesmo método citado no artigo anterior
  41. string NovoValorCriptografado = GerarMD5(valor);
  42.  
  43. // Criamos uma StringComparer para compararmos os dois hashs gerados
  44. StringComparer comparer = StringComparer.OrdinalIgnoreCase;
  45.  
  46. //Se os valores forem iguais, retorna true, ou seja, o valor
  47. // passado corresponde ao Hash
  48. if (comparer.Compare(NovoValorCriptografado, valorCriptografado) == 0)
  49. {
  50. return true;
  51. }
  52. else
  53. {
  54. return false;
  55. }
  56. }
  57.  
  58. // POST: /conta/login
  59. [HttpPost]
  60. public ActionResult Login(LoginUsuarioVM model)
  61. {
  62. // Verifica o status da model
  63. if (!ModelState.IsValid)
  64. {
  65. return View(model);
  66. }
  67.  
  68. // Verifica se o usuário é válido
  69.  
  70.  
  71. bool isValid = false;
  72.  
  73. using (Db db = new Db())
  74. {
  75. if (db.Usuarios.Any(x => x.Usuario.Equals(model.Usuario) && (verifyMd5Hash(x.Senha, model.Senha))))
  76. {
  77. isValid = true;
  78. }
  79. }
  80. if (!isValid)
  81. {
  82. ModelState.AddModelError("", "Usuário ou senha inválida.");
  83. return View(model);
  84. }
  85. else
  86. {
  87. FormsAuthentication.SetAuthCookie(model.Usuario, model.Lembrar);
  88. return Redirect(FormsAuthentication.GetRedirectUrl(model.Usuario, model.Lembrar));
  89. }
  90. }
  91.  
  92. if (db.Usuarios.Any(x => x.Usuario.Equals(model.Usuario) &&
  93. (verifyMd5Hash(x.Senha, model.Senha))))
  94.  
  95. var usuario = db.Usuarios.First(u => u.Usuario == model.Usuario);
  96. if(verifyMd5Hash(usuario.Senha, model.Senha)) { }
Add Comment
Please, Sign In to add comment