completed password hashing