diff options
author | Richard van der Hoff <github@rvanderhoff.org.uk> | 2016-03-16 10:47:33 +0000 |
---|---|---|
committer | Richard van der Hoff <github@rvanderhoff.org.uk> | 2016-03-16 10:47:33 +0000 |
commit | 467c1599c97a104210844963562abab234843c77 (patch) | |
tree | c23c5064c4ffe2d5690923b4c799c5482c459e1b /scripts/hash_password | |
parent | Merge pull request #646 from matrix-org/erikj/reject_invite_federation (diff) | |
parent | Clarify that we do have reset functionality via the IS (diff) | |
download | synapse-467c1599c97a104210844963562abab234843c77.tar.xz |
Merge pull request #648 from matrix-org/rav/password_reset
Password reset docs and script
Diffstat (limited to 'scripts/hash_password')
-rwxr-xr-x | scripts/hash_password | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/scripts/hash_password b/scripts/hash_password new file mode 100755 index 0000000000..e784600989 --- /dev/null +++ b/scripts/hash_password @@ -0,0 +1,39 @@ +#!/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)) + |