Many questions have been asked about hashing passwords in (web) applications, but I'm experiencing a different issue. I know that the application I'm currently working on isn't doing it safely enough (just sha1 without salts or anything), but it's kinda hard to change it all of a sudden.
I will have to find a way to implement a new algorithm for all (± 50.000) users. I've been thinking about a few solutions, but none of them sound right.
1) Adding a second column to the user table with the new password. Every time the user gets authenticated, I store the password with its new hash and throw away the old one. This will in practice mean that it'll take years before the sha1 phases out.
1.1) Do the above but stimulate the users to log back in to our system for a security update, but that really feels as admitting a (pre)consisting security vulnerability. That's not gonna be to my management's liking.
2) Re-authenticate all users and throw away all passwords. This is very rigorous, and also a pain in the behind for the users.
How would you cope with this problem?