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.
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.
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 |
|---|
| Papel | Tecnologia |
|---|---|
| Linguagem de programação | TypeScript |
| Framework de back-end | Express |
| Banco de dados | SQLite |
| Mapeamento Objeto-Relacional | TypeORM |
-
Clone o repositório de código em sua máquina;
-
Abra um shell de comando de sua preferência (prompt de comando, PowerShell, terminal etc.);
-
Instale as dependências do projeto através do seguinte comando:
$ npm installCaso esteja utilizando o gerenciador de pacotes Yarn, execute o seguinte comando como alternativa:
$ yarn- Finalmente, execute o seguinte comando para executar o app:
Para npm:
$ npm run startPara Yarn:
$ yarn start