Suppose you store a bunch of hashed passwords, but your hashing algorithm gets broken. What is the best practice?
It seems like the only safe practice would be to take the old password hashes (hashed with the semi-broken algorithm Hash1()
) and hash the hashes with a new hash, not known to be broken (Hash2()
). And now when a user enters their password, you hash the entered password with Hash2(Hash1())
to see if it matches.
This seems like the only logical conclusion, but I've never heard of this recommended anywhere as a best practice. Is this a known best practice that's already documented somewhere? Or is there an error in this reasoning, or a simpler way to achieve the same thing?