This code snippet implements password hashing for safe storage. It uses Bcrypt for the hashing algorithm. The method
hash_password() is used to hash and salt a password. The method
verify() is used to check whether a password matches a hash.
pip install bcrypt
import bcrypt def hash_password(password): # bcrypt.gensalt() takes an argument (in the form of eg (rounds=16)) # which increases security, but also the cost factor pw_hash = bcrypt.hashpw(password.encode(), bcrypt.gensalt()) return pw_hash def verify(pw_hash, password): return bcrypt.checkpw(password.encode(), pw_hash) def main(): pw_hash = hash_password('s3cr3t') print(pw_hash) print(verify(pw_hash, 's3cr3t')) print(verify(pw_hash, 's3cr4t')) return None if __name__ == '__main__': main()
1- Do you think the implementation of hash_password is up-to-date and secure?
2- Do you think the implementation of verify is up-to-date and secure?
3- Would you make any other changes to this code snippet?
4- Did you use any additional resources while checking the code? If yes, please provide a link or description of your resource