password_hash/password_verify с современным алгоритмом (bcrypt/argon2); не храните plaintext и не изобретайте хеши.
Разбор
- Соль внутри hash.
- Регулярно проверяйте need_rehash.
- Pepper — отдельное решение.
- Timing-safe сравнение уже в verify.
Итог
Стандартные password_* функции — правильный путь.