В Symfony 3.4 добавили хэш-пароль Argon2i в качестве современной замены хэш-памяти Bcrypt. Поддержка Argon2i обеспечивается библиотекой libsodium, которая автоматически выбирает вариант Argon2 (argon2d, argon2i или argon2id) на основе хост-системы.
Учитывая, что выбор варианта Argon2 находится вне контроля Symfony, в Symfony 4.3 решили не добавлять Argon2idPasswordEncoder
, чтобы исключить класс Argon2iPasswordEncoder
и добавить вместо него универсальный класс SodiumPasswordEncoder
.
Этот новый кодировщик использует libsodium для выбора наилучшего варианта Argon2. На практике единственное изменение, которое вам нужно внести в большинство ваших приложений – это обновить имя алгоритма хеширования в основном файле конфигурации безопасности:
# config/packages/security.yaml
security:
# ...
encoders:
App\Entity\User:
- algorithm: argon2i
+ algorithm: sodium
Имя варианта Argon2, используемого для хэширования пароля, включено в сам хэш, поэтому вы можете безопасно обновить эту конфигурационную опцию. Если libsodium выберет новый вариант, все ваши существующие пароли будут работать.
Кроме того, все существующие опции конфигурации Argon2i по-прежнему доступны под новым именем алгоритма Sodium.