-
Notifications
You must be signed in to change notification settings - Fork 9
Description
See https://make.wordpress.org/core/2025/02/17/wordpress-6-8-will-use-bcrypt-for-password-hashing/
The wp_hash_password() and wp_check_password() functions have been updated to use the PHP native password_hash() and password_verify() functions with the bcrypt algorithm and SHA-384 pre-hashing. Both functions retain support for the $wp_hasher global object in case that’s being used to implement an alternative hashing mechanism.
The wp_check_password() function retains support for passwords that were hashed using phpass, which means existing password hashes won’t be invalidated.
A new wp_password_needs_rehash() function has been introduced as a wrapper for password_needs_rehash(). If a plugin needs to adjust its logic then the password_needs_rehash filter can be used. The function is also pluggable, so it can be overridden if absolutely necessary.
Pre-hashing with SHA-384 is implemented in order to avoid the 72 byte length limit imposed on passwords by bcrypt. Password hashes are therefore stored with a $wp prefix to distinguish them from vanilla bcrypt hashes which may be in use via a plugin. By default this means the full prefix will be $wp$2y$.