Free tool / No sign-up
WordPress password hash generator.
Generate a WordPress password hash you can paste into the database to get back into a site: the bcrypt format that WordPress 6.8 and newer write ($wp$2y$…), or the older phpass format ($P$…) that every version accepts. You also get the SQL line for phpMyAdmin, and you can check whether a password matches a hash. Everything runs in your browser; nothing is sent anywhere.
WordPress 6.8+ bcrypt and the older phpass format, made in your browser.
Use the tool / Runs in your browser
Everything runs in your browser. The password and hash are never sent anywhere or stored.
WordPress fixes, clean-ups, updates and maintenance by a WordPress developer. Free review, fixed quote, from $500.
See the serviceWhy it changed
WordPress 6.8 changed how passwords are stored.
Since WordPress 6.8, released in April 2025, core stores passwords with bcrypt instead of the old phpass method. It first runs the password through HMAC-SHA384 with the key wp-sha384 and base64-encodes the result, so long passwords keep their strength despite bcrypt's 72-byte limit, then hashes that with PHP's password_hash and adds a $wp prefix. That's why new hashes in the wp_users table look like $wp$2y$10$… or $wp$2y$12$….
Most password hash generators online still output the old $P$ format. That still works, because WordPress 6.8 and newer accept phpass hashes and quietly upgrade them to bcrypt the next time the user logs in. But if you want the database to hold the same kind of hash WordPress itself writes today, you need a generator that follows the new method. This one does, step for step, and every hash it makes was checked against WordPress core's own verification code before launch.
| Hash starts with | What it is |
|---|---|
| $wp$2y$ | bcrypt with SHA-384 pre-hashing, written by WordPress 6.8+ |
| $P$B | phpass, 8,192 rounds of MD5, written by WordPress before 6.8 |
| $2y$ (no $wp) | Plain bcrypt, often set by plugins or other apps |
| 32 hex characters | Plain MD5 from very old installs |
How to use it
Reset a WordPress password from the database.
1. Type the new password, or use the suggested strong one, and pick your WordPress version. If you're not sure which version the site runs, choose the $P$ format: it works on every version. You can also check the version with the website platform checker.
2. Generate the hash, then set your table prefix (wp_ by default; check $table_prefix in wp-config.php) and the username. The tool writes the matching UPDATE statement.
3. In phpMyAdmin or Adminer, open the site's database, run the SQL, or open the wp_users table, edit the user's row and paste the hash into user_pass. Leave the Function column empty, because the value is already hashed. Then log in with the new password.
If you have command-line access, WP-CLI is quicker and needs no hash at all: wp user update admin --user_pass="your-new-password". And if email works on the site, the normal Lost your password link is still the simplest route.
Check a hash
Test a password against a stored hash.
The Check a hash tab answers a common debugging question: does this password match what's in the database? Paste the password and the user_pass value. The tool recognises the format and checks it the way wp_check_password does: the $wp bcrypt format, phpass, plain bcrypt and old MD5 hashes. It's useful after a migration, when logins fail and you need to know whether the hashes survived the move or a plugin changed how passwords are stored.
Limits
When a new hash won't get you in.
A $wp$ hash only works on WordPress 6.8 or newer, so if you later roll a site back to an older version, those users need a $P$ hash or a password reset. Sites that replace WordPress's login, such as membership plugins, some single sign-on setups and security plugins that override wp_check_password, may store or check passwords differently. If the site was hacked, changing the password isn't enough on its own: check for unknown administrator accounts, update everything, and change the database and hosting passwords too.
The generator never sends the password or the hash to a server; the hashing runs in your browser with your device's secure random generator, and the page's analytics recordings are set to hide this tool. You can load the page, disconnect from the internet, and it still works.
Need a hand?
Locked out after an update or a hack?
If a broken update, a plugin conflict or a hack has locked you out, I fix and maintain WordPress sites: I get you back in, find the cause, clean up and update, and set up the site so it doesn't happen again. Fixed quote after a free review.
Questions
WordPress Password Hash Generator FAQs
How do I generate a WordPress password hash?+
Type the password above, choose your WordPress version and click Generate. For WordPress 6.8 and newer you get a $wp$2y$ bcrypt hash, the same format core writes; for older versions, or if you're not sure, choose the $P$ phpass format, which every version accepts.
What hashing does WordPress use for passwords?+
Since WordPress 6.8, bcrypt with SHA-384 pre-hashing, stored with a $wp$2y$ prefix. Before 6.8 it used phpass, portable hashes that start with $P$B. WordPress 6.8+ still accepts phpass and plain MD5 hashes and upgrades them to bcrypt when the user next logs in.
How do I change a WordPress password in phpMyAdmin?+
Open the wp_users table (your prefix may differ), edit the user's row and paste the generated hash into user_pass with the Function column left empty, or run the UPDATE statement the tool writes for you. Then log in with the new password.
Can I just use MD5 in phpMyAdmin?+
It works: WordPress accepts a plain MD5 hash once and replaces it with a strong hash at the next login. But MD5 is weak if the database leaks before that login, so a bcrypt or phpass hash from this tool is the safer choice.
Is it safe to type a password into this tool?+
Yes. The hashing runs entirely in your browser and nothing is sent or stored. You can confirm it by disconnecting from the internet after the page loads; the tool keeps working.
Why doesn't my $wp$ hash work?+
The site is probably running WordPress older than 6.8, which can't read the new format. Generate a $P$ hash instead. If it still fails, a plugin may handle logins differently, or the username or table prefix in the SQL doesn't match the site.
WordPress fixes
Locked out or hacked? I'll get the site back.
Send me the site address and what you need. I’ll reply with a clear next step, usually the same day in US and UK hours.
Free review, fixed quote, from $500.
bealinawaz@gmail.com