&gt; I thought the standard way of migrating your PW hashing function was that you could only do it during a login, because that&#x27;s the only time you have the PW in plain text. No?<p>No. Well, I mean, it&#x27;s <i>common</i> to do that, but it&#x27;s a bad idea and it&#x27;s not necessary to keep all of those vulnerable hashes around.<p>Say you have a bunch of MD5 password hashes stored, and you want to upgrade your password hashing to BCrypt. Don&#x27;t wait for the user to login and rehash their plain text password.<p>Instead, Bcrypt all the MD5s. The authentication mechanism is now BCrypt(MD5(plaintext)) == stored_bcrypt. Upgrade them to straight bcrypt on login.