Новое в Symfony 4.3: Кодер паролей Sodium

В 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.