Take the 2-minute tour ×  I have user account passwords stored
in a database using an unsafe (old) cryptographic hash function.
What is the best/usual approach to changing password hash
function? Only two ideas come to my mind:    1. Prompt all users
to change their passwords on next log in and hash their
passwords with new function when they do. This is not a good
option because of many issues (inactive users, long migration
period, complicated implementation...)    2. Hash the old hash
values with new hash function, and re-write the method for
checking passwords against database: newHash(salt + oldHash(salt
+ password))  This double hashing seems to me like a good idea,
both elegant and simple to implement.  I would like to know if
there are any caveats I'm not noticing here. Is this the way
this is usually done, or there is another method? Is there some
known cryptographic vulnerability in using weak hash function's
output as strong hash function's input.  If it is a good idea,
what about salt? Would it b