123456789101112131415161718192021222324252627282930313233343536373839 |
- #!/usr/bin/env python
- import argparse
- import bcrypt
- import getpass
- bcrypt_rounds=12
- def prompt_for_pass():
- password = getpass.getpass("Password: ")
- if not password:
- raise Exception("Password cannot be blank.")
- confirm_password = getpass.getpass("Confirm password: ")
- if password != confirm_password:
- raise Exception("Passwords do not match.")
- return password
- if __name__ == "__main__":
- parser = argparse.ArgumentParser(
- description="Calculate the hash of a new password, so that passwords"
- " can be reset")
- parser.add_argument(
- "-p", "--password",
- default=None,
- help="New password for user. Will prompt if omitted.",
- )
- args = parser.parse_args()
- password = args.password
- if not password:
- password = prompt_for_pass()
- print bcrypt.hashpw(password, bcrypt.gensalt(bcrypt_rounds))
|