mirror of
https://mau.dev/maunium/synapse.git
synced 2024-11-17 23:42:33 +01:00
40 lines
914 B
Text
40 lines
914 B
Text
|
#!/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))
|
||
|
|