Exemple #1
0
        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);
        }
Exemple #3
0
        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}");
        }