New in Symfony 5.3: PasswordHasher Component

Contributed by Robin Chalas in #39802.

Hashing passwords is the process of applying a cryptographic hash function to transform the original plain text password into a different non-guessable value which is infeasible to invert. For historical reasons, Symfony uses the term “password encoding” when it should really refer to “password hashing”. This has caused some confusion for people learning Symfony, so we decided to fix this in Symfony 5.3 for once and for all. That’s why in Symfony 5.3 we’re introducing a new component called PasswordHasher. This component extracts all the existing code and features related to “password encoding” and renames it to “password hashing”. All the “encoding” features are deprecated in Symfony 5.3 and will be removed in Symfony 6.0. The API of the new hasher is similar to the previous one and slightly more close to the PHP built-in password hashing API: 1 2 3 4 5 6 7 8 9 10namespace Symfony\Component\PasswordHasher;

interface PasswordHasherInterface { public function hash(string $plainPassword): string;

public function verify(string $hashedPassword, string $plainPassword): bool;

public function needsRehash(string $hashedPassword): bool;

}

This new component can be used independently from the rest of Symfony features in any PHP application. For existing Symfony applications, the new component is included automatically when installing/updating the security package, so you don’t need to make any change in your dependencies. The impact in your application code will be low, but you might need to make some minor changes. For example, the security:encode-password command is now called security:hash-password. The security.password_encoder service is now called security.password_hasher, the UserPasswordEncoderInterface is now UserPasswordHasherInterface, etc. The main change will be in the security configuration, where you need to replace encoders by password_hashers: 1 2 3 4 5 # config/packages/security.yaml -encoders: +password_hashers: App\Entity\User: algorithm: 'auto'

                Sponsor the Symfony project.

http://feedproxy.google.com/~r/symfony/blog/~3/jVTl6wxaL6g/new-in-symfony-5-3-passwordhasher-component

Erstellt 4y | 29.04.2021, 07:20:08


Melden Sie sich an, um einen Kommentar hinzuzufügen

Andere Beiträge in dieser Gruppe

New in Symfony 7.3: Routing Improvements

The Routing component provides an impressive list of features to map incoming URLs to your application code. Symfony 7.3 pushes it even further with a set of new features that improve developer experi

21.05.2025, 11:10:07 | Symfony
New in Symfony 7.3: JsonStreamer Component

Contributed by Mathias Arlaud in

20.05.2025, 09:30:13 | Symfony
Symfony UX CVE-2025-47946: Unsanitized HTML attribute injection via ComponentAttributes

Affected versions

Symfony UX symfony/ux-live-component and symfony/ux-twig-component versions <2.25.1 are affected by this security issue.

The issue has been fixed in the 2.25.1 version of these

19.05.2025, 12:40:14 | Symfony
New in Symfony 7.3: Yaml Improvements

Symfony has been reducing the need for configuration in applications for several years now. Thanks to PHP attributes, you can now configure most things alongside the relevant code, removing the need f

19.05.2025, 08:10:09 | Symfony
A Week of Symfony #959 (May 12–18, 2025)

This week, development activity focused on polishing Symfony 7.3 ahead of its final release in two weeks. We also continued publishing articles highlighting the new features of Symfony 7.3 and shared

18.05.2025, 08:50:08 | Symfony
SymfonyOnline June 2025:  Keynote “Symfony in 2025, Scaling to Zero.”

SymfonyOnline June 2025 is almost here, starting in a few weeks on:

June 10-11: Workshop days. June 12-13: Online conference days in English. All talks will be available for replay as soon as

16.05.2025, 15:10:26 | Symfony
New in Symfony 7.3: Dependency Injection Improvements

Symfony 7.3 introduces several enhancements to the DependencyInjection component that simplify service configuration, make autoconfiguration more flexible, and enable environment-specific aliasing.

S

16.05.2025, 08:10:11 | Symfony