implemented password hashing and salting