/auth-via-hash-and-salt

Modelo de API Express.js com autenticação via senha utilizando hash e salt.

Primary LanguageTypeScript

auth-via-hash-and-salt

Sumário

Motivação

Este app é uma API Express.js que oferece uma estrutura sólida e eficiente para a implementação de autenticação por senha, utilizando técnicas avançadas de hash e salt. A seguir, detalhamos os métodos fundamentais incorporados nesta aplicação para assegurar a integridade e segurança das senhas.

Método _generatePassword()

O método _generatePassword() é responsável por gerar o hash e o salt para uma senha fornecida. Antes de iniciar o processo, verifica se a senha é válida por meio do método _isPasswordValid(). Se a senha atende aos critérios estabelecidos, um salt exclusivo é gerado usando bytes aleatórios (utilizando randomBytes(16)) e convertido para uma representação hexadecimal. Em seguida, é aplicada a função de derivação de chave baseada em senha (PBKDF2) para criar o hash. O resultado é uma combinação única de hash e salt, que é armazenada para autenticação futura.

Método isPasswordCorrect(password: string): boolean

O método isPasswordCorrect(password: string): boolean é utilizado para verificar se uma senha fornecida é correta. Utiliza a mesma função PBKDF2 para gerar o hash correspondente à senha fornecida e, em seguida, compara-o com o hash armazenado durante a geração da senha. Se os hashes coincidem, a senha é considerada correta, indicando uma autenticação bem-sucedida.

Esses métodos são essenciais para a segurança robusta do sistema de autenticação, garantindo que as senhas sejam armazenadas e verificadas de forma segura, utilizando técnicas modernas de criptografia. A implementação destes métodos proporciona uma base sólida para o desenvolvimento de sistemas de autenticação seguros e confiáveis.

Este foi o quinto repositório de código apresentado no Curso Superior de TSI do IFMS como requisito para obtenção da nota parcial das atividades da unidade curricular Web Services.

← Repositório anterior

Pilha de tecnologia

Papel Tecnologia
Linguagem de programação TypeScript
Framework de back-end Express
Banco de dados SQLite
Mapeamento Objeto-Relacional TypeORM

Como rodar

Pré-requisitos

Passo a passo

  1. Clone o repositório de código em sua máquina;

  2. Abra um shell de comando de sua preferência (prompt de comando, PowerShell, terminal etc.);

  3. Instale as dependências do projeto através do seguinte comando:

$ npm install

Caso esteja utilizando o gerenciador de pacotes Yarn, execute o seguinte comando como alternativa:

$ yarn
  1. Finalmente, execute o seguinte comando para executar o app:

Para npm:

$ npm run start

Para Yarn:

$ yarn start