Avatar ·

Hashing seguro e salt para senhas em PHP: como fazer corretamente?

Olá a todos. Sou um desenvolvedor PHP iniciante e estou com um problema com o armazenamento de senhas de usuários. Atualmente estou usando md5() simples, mas li que isso não é seguro. Tentei adicionar salt, mas não tenho certeza se estou fazendo isso corretamente.\n\nAqui está meu código atual para registro:\n\n```php\n$password = $_POST['password'];\n$salt = 'my_secret_salt';\n$hashed_password = md5($salt . $password);\n// salvo $hashed_password no banco de dados\n```\n\nE para verificação no login:\n\n```php\n$password = $_POST['password'];\n$salt = 'my_secret_salt';\n$hashed_password = md5($salt . $password);\n// comparo com o que está no banco de dados\n```\n\nProblemas que estou vendo:\n1. O salt é estático — se for descoberto, todas as senhas estão comprometidas.\n2. md5() é muito rápido, fácil de quebrar.\n3. Não há proteção contra ataques de timing (timing a