Executando verificação de segurança...
1

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.

Carregando publicação patrocinada...
2

use um padrão de criptografia forte como o SHA-2 ou SHA-3

Não sugiro utilizar SHA-2 nem SHA-3 para senhas, pois eles são algoritmos muito rápidos. Sugiro utilizar um algoritmo que seja projetado para ser devagar (ao consumir muito processamento) e/ou outros recursos do sistema, exemplo:

Em paralelo, nesta parte do seu artigo:

ferrari123 != ferrari123

Acho que faltou o salt neste exemplo, pois as duas strings são iguais.

Ao final, sugiro ler esta publicação aqui do rafael:

Armazenamento seguro de senhas: Um guia prático (texto puro, hash, salt e mais)

1