We are currently working on authentication for a web application. For password storage, we're using Jasypt StrongPasswordEncryptor with SHA-256 and tens of thousands of iterations. Going into the project, I had hoped to implement PBKDF2-HMAC-SHA512 (I do not believe I could get traction on a switch to bcrypt or scrypt).
The Jasypt StrongPasswordEncryptor simply re-hashes the passed however many times specified using SHA-256 (or other algorithm chosen), instead of the HMAC iterations in PBKDF2. I understand that the security benefit of PBKDF2 is its slow speed, while SHA is fast. However, since PBKDF2 is simply reiterating HMAC-SHA (or some other function), it's hard to show an improvement over the current method.
If the security improvement from the change is minimal, it is unlikely to be done. If there is a substantial security improvement, it's still early enough in the project to be made.
What is it about HMAC-SHA that makes it better/slower than a normal SHA?
What sort of information can I bring to a change request - how much of an improvement would there be?
Is the change necessary?