Falhas do tipo CWE-760
10 resultadosHash unidirecional com sal previsível
Quando você usa uma função hash criptográfica (como SHA-256) para proteger senhas, mas reutiliza o mesmo sal ou usa um sal fácil de adivinhar (como o ID do usuário ou uma constante), um atacante consegue pré-computar todas as combinações possíveis em uma tabela rainbow e quebrar os hashes rapidamente. O problema é que o sal previsível elimina a vantagem de segurança que ele deveria trazer.
Um banco usa `hash = SHA256(senha + userID)` para armazenar senhas. Como o userID é sequencial e público, um atacante cria uma tabela rainbow com SHA256(senhas_comuns + 1001), SHA256(senhas_comuns + 1002), etc., e consegue reverter centenas de hashes em segundos.
Use um sal aleatório e criptograficamente seguro gerado para cada hash (pelo menos 16 bytes), nunca reutilize sais e armazene-o junto com o hash. Melhor ainda: troque hashes genéricos por funções especializadas como bcrypt, argon2 ou scrypt, que já incorporam sal forte e defesa contra força bruta.