I'm attempting to implement a stronger password hashing/storage mechanism and opting for the simplest approach, PHP's password_hash() and password_verify().
I'm letting PHP generate a random salt as recommended, and this all makes sense. Except, part of the "strong password" policy I need to implement is to reject a user from re-using a previously used password. In theory, I would be able to implement this by storing an archive of hashed passwords. When the user changes his/her password, we check the new hash against the archive of hashes. If there's a match, we know that the password has been previously used and reject it. However, implementing a random salt, while significantly more secure, effectively makes this archive of password hashes useless.
So, my question is how to implement this password policy while using random salts? Surely somebody else has run across this problem.