ASP.net has a System.Web.Helpers.Crypto class for hashing and verifying passwords. It appears to generate the salt on the fly and store it as part of the password hash.
My question is, as computers become more powerful and the number of iterations need to increase to help protect against brute force attacks, how can you increase the iterations of the existing passwords?
The number of iterations is hard-coded into the helper. Changing it to a larger number will increase the number of iterations on new passwords, but also increases it unilaterally for all passwords when verifying them. Won't this break password verification for older passwords?
To plan for the future, wouldn't you want to store the salt and number of iterations?
Also, is it possible to "strengthen" existing password hashes by performing additional iterations, or do the iterations all have to occur as one operation?