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 install
Caso 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 start
Para Yarn:
$ yarn start