MD5 e SHA-1 estão mortos para senhas. Entenda a diferença entre bcrypt e argon2id, como calibrar o cost e por que auto-rehash é essencial.
MD5 e SHA-1 estão mortos para senhas
MD5 e SHA-1 são funções hash de propósito geral — rápidas, o que é exatamente o problema para senhas. GPUs modernas podem calcular bilhões de hashes MD5 por segundo, tornando ataques de dicionário triviais.
bcrypt: o padrão atual
bcrypt foi projetado especificamente para senhas. O parâmetro de custo (cost) controla o número de iterações — aumentar o custo em 1 dobra o tempo de cálculo. O custo ideal é o mais alto que mantém o login abaixo de ~300ms no seu hardware.
password_hash($plain, PASSWORD_BCRYPT, ['cost' => 12]);
argon2id: o substituto moderno
argon2id adiciona resistência a ataques de hardware (FPGAs, ASICs) via uso de memória. É o algoritmo recomendado pelo OWASP para sistemas novos. Os parâmetros memory_cost e time_cost permitem tuning fino.
Auto-rehash: a migração transparente
Ao autenticar, verifique com password_needs_rehash() se o hash precisa ser atualizado para o algoritmo atual. Se sim, rehash e salve o novo hash. Isso permite migrar bcrypt → argon2id gradualmente, login a login, sem resetar senhas.
Publicado em
Segurança WebExplorar por tema