http://rtner.de/software/PBKDF2.html