#!/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))