public async Task <bool> RegisterAsync(User user, string password) { var passwordHash = CryptoService.CalculateHash(password); user.PasswordHash = passwordHash; var result = await _userManager.CreateAsync(user); return(result.Succeeded); }
public void CalculatesHash(string plainText, string cipher) { // Arrange var cryptoService = new CryptoService(); // Act var hash = cryptoService.CalculateHash(plainText); // Assert Assert.Equal(cipher.ToUpperInvariant(), hash); }
public async Task <bool> TryLoginAsync(string email, string password) { var user = await _userManager.FindByEmailAsync(email); if (user == null) { throw new ObjectNotFoundException($"User with email: {email} is not found."); } if (user.PasswordHash == CryptoService.CalculateHash(email)) { return(true); } else { throw new UnauthorizedAccessException("Password is incorrect."); } }
static void Main(string[] args) { // Cria o serviço que encapsula a api. CodenationApi api = new CodenationApi(); Console.WriteLine("Realizando o download dos dados..."); // Faz o download do desafio. CryptoAnswer answer = api.DownloadData(); Console.WriteLine("Salvando o answer.json original..."); // Salva o arquivo com o conteúdo original. answer.SaveFile(); // Cria a instância da classe de criptografia. CryptoService cryptoService = new CryptoService(); Console.WriteLine("Descriptografando a mensagem..."); // Descriptografa a mensagem recebida. answer.UncryptedText = cryptoService.UncryptMessage(answer); Console.WriteLine("Calculando o hash da mensagem..."); // Calcula o hash da mensagem recebida. answer.CryptographSummary = cryptoService.CalculateHash(answer); Console.WriteLine("Salvando o arquivo modificado..."); // Salva o resultado modificado no arquivo. answer.SaveFile(); // Envia o arquivo para a API da Codenation. string response = api.UploadData(answer.FileName); Console.WriteLine($"Resultado do envio: {response}"); }