Você adiciona sal em suas senhas?, isso mesmo sal!
Se sua aplicação usa senhas com criptografias como MD5, saiba que você pode ter vulnerabilidades em seu sistema.
Hoje o MD5 pode ser facilmente calculado, e suas possiveis colisões de hash possibilitam a forja de um mesmo hash com dados diferentes.
Como proteger suas senhas?
Use metodos e funções de criptografia forte como o bcrypt
ou Argon2
e adicione sal.
Salt é uma forma de garantir que senhas iguais sejam consideradas diferentes. exemplo:
hash(ferrari123) != hash("ferrari123" + "salt123")
o Salt é adicionado no momento da criptografia da senha e salvo separadamente no banco junto com o hash gerado
abaixo segue um exemplo em Golang:
func HashPasswordWithSalt(password string, salt string) string {
checksum := sha256.Sum256([]byte(password + salt))
return hex.EncodeToString(checksum[:])
}
Dica: utilizar um algoritmo que seja projetado para ser devagar (ao consumir muito processamento) e/ou outros recursos do sistema.
Edit: Não utilize SHA-2 ou SHA-3, pois eles são algoritmos muito rápidos, e podem facilitar ataques de força bruta.