Я хочу, чтобы мои пароли были безопасными в базе данных. Даже если кто-то утечка паролей, я не хочу, чтобы кто-нибудь мог их расшифровать.
Пароли хэшируются, а не зашифрованы. Существует большая разница. Вы должны понимать, что зашифрованные строки можно получить, расшифруя их. Это невозможно при хешировании. Хэши в большинстве случаев не обратимы, а пароли проверяются путем сопоставления хэшей. Хэш-методы, такие как MD5, были взломаны и, следовательно, не безопасны, поскольку пароль может быть «unhashed».
Вы не должны пытаться создать свой собственный алгоритм хеширования, поскольку он, скорее всего, будет иметь серьезные недостатки безопасности. Алгоритмы текущего дня были разработаны бесчисленными специалистами по безопасности и криптографии и анализировались снова и снова. Существует только нулевой процентный шанс, что ваш алгоритм заднего двора будет более безопасным, чем алгоритмы, разработанные экспертами.
Просто используйте методы PHP по умолчанию, которые являются password_hash
и password_verify
. Хеширующая функция генерирует случайную соль сама по себе, которая добавляется к хешированному паролю. Поэтому это очень безопасный метод и ваш лучший выбор.