phpass password hash generator
Portable phpass $P$ hashes, WordPress's password format through 6.7. On 6.8+? use the modern generator — it produces a different, incompatible format.
$P$Paste into the user_pass column of wp_users.
When you actually need phpass
Since WordPress 6.8, $P$ is no longer the default — Core writes bcrypt $wp$2y$ hashes instead. This generator still matters for three real cases: an installation still running 6.7 or earlier, a plugin or integration that verifies phpass directly, and migration or recovery procedures that explicitly call for a portable hash. Outside those, use the modern generator — it matches what a current WordPress site actually creates.
Quick answers
Is $P$ still accepted on WordPress 6.8 and later?
Yes. WordPress verifies phpass hashes on any version and rehashes the account to $wp$2y$ automatically the next time that user logs in successfully. You do not need to convert existing hashes by hand.
How is this different from a plain MD5 hash?
phpass runs 8,192 rounds of salted MD5 rather than one, which makes brute-forcing meaningfully slower. It is still weaker than bcrypt, which is why 6.8 replaced it as the default.
Will a $P$ hash work if I paste it into a WordPress 6.8+ database?
Yes — WordPress 6.8+ still verifies phpass hashes for backward compatibility. It only stops accepting them if you roll back below the version that introduced phpass support, which no supported release does.