User tests: Successful: Unsuccessful:
Pull Request resolves # .
Removes MD5Handler, deprecated since Joomla 4.0 and scheduled for removal in 7.0, together with:
UserHelper::HASH_MD5, its algorithm mapping, and MD5 service registration.Adds upgrade cleanup for the deleted file and updates the PHPStan baseline and spelling-reference comment.
libraries/src/Authentication/Password/MD5Handler.php is removed.The deprecated MD5 handler remains registered and accepts legacy MD5 password hashes.
MD5 password support is removed. BCrypt, Argon2i, Argon2id, and the extensible handler chain remain available.
Please select:
| Status | New | ⇒ | Pending |
| Category | ⇒ | Repository Administration com_admin Libraries |
| Title |
|
||||||
| Labels |
Added:
PR-7.0-dev
|
||
I have tested this item ✅ successfully on 6df4d05
I have tested this item ✅ successfully on 6df4d05
MD5 password support is gone, BCrypt/Argon2i/Argon2id logins still work, and the upgrade cleanup removes the old file.
7.0-dev + PR, PHP in DDEV, fresh install. Test users with hashes set directly in #__users:
| Stored hash | 7.0-dev (before) | PR (after) |
|---|---|---|
MD5 salted hash:salt, frontend |
logged in | rejected, no PHP errors |
| MD5 unsalted, frontend | logged in | rejected, no PHP errors |
| MD5 salted, Super User, backend | logged in | rejected |
| BCrypt, frontend (right / wrong pw) | — | logged in / rejected |
| Argon2id, frontend | — | logged in |
| admin (BCrypt), backend (right / wrong pw) | — | logged in / rejected |
user:reset-password on the unsalted MD5 user, then login → works.libraries/src/Authentication/Password/MD5Handler.php, ran JoomlaInstallerScript::deleteUnexistingFiles() → dry run lists it, real run deletes it.UserHelper::hashPassword('md5') now throws InvalidArgumentException (unsupported algorithm); HASH_MD5, the class and the password.handler.md5 service are gone. No other core references are left.libraries/src/User/User.php:81: the $password docblock still says "MD5 encrypted password". Could be "Hashed password".HASH_MD5 constant and the password.handler.md5 service.MD5Hander → MD5Handler.This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/48633.
| Title |
|
||||||
Hi @tecpromotion,
I've made those suggested changes and added the necessary documentation to the manual.
Thanks.
@lemuelvdm thanks for the PR, would you like to propose a new way for https://guide.joomla.org/user-guide/users/users-admin-password-recovery since using md5 passwords would no longer be possible we should provide an alternative (if possible).
I would expect bcrypt and argon is not as simple as md5 but didn't tried it yet
This pull request has conflicts, please resolve those before we can evaluate the pull request.
I have tested this item ✅ successfully on 6df4d05
This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/48633.