MD5/SHA-1 устарели. Сегодня — modern hashing.
Почему просто hash не хватает
Rainbow tables, brute force GPU.
bcrypt
Медленный — сложно brute force. Cost 12-14.
PHP
password_hash($pass, PASSWORD_BCRYPT).
Argon2
Победитель PHC. PASSWORD_ARGON2ID.
Salt
Автоматический.
Pepper
В .env, не в БД.
Rehashing
password_needs_rehash().
2FA
Всегда добавляйте.