1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
#!/usr/bin/env python
import base64
import argparse
from Crypto import Random
from Crypto.Protocol.KDF import PBKDF2
# dd if=/dev/random of=password.key bs=64 count=1
with open('password.key', 'r') as f:
password_salt = f.read()
def password_random(length):
random_bytes = Random.new().read(length)
return base64.b64encode(random_bytes)
def tenant_password(tenant_name, salt_key):
# dd if=/dev/random of=password.key bs=64 count=1
with open(salt_key, 'r') as f:
password_salt = f.read()
return base64.b64encode(PBKDF2(tenant_name, password_salt, 18))
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument("tenant_name", help="Provide tenant name")
parser.add_argument("salt_file", help="Provide filename for salt.", default="password.key")
args = parser.parse_args()
print tenant_password(args.tenant_name, args.salt_file)
|