Working PBKDF2 implementation.