You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
3.4 KiB
85 lines
3.4 KiB
4 years ago
|
import random
|
||
|
import string
|
||
|
|
||
|
|
||
|
digits = list(string.digits*10 + string.ascii_lowercase*10)
|
||
|
uppercase = list(string.ascii_uppercase + string.ascii_lowercase)*30
|
||
|
lowercase = list(string.ascii_lowercase)*30
|
||
|
punct = list(string.ascii_lowercase*10 + string.punctuation*5)
|
||
|
|
||
|
upp_dig = list(string.digits*10 + string.ascii_lowercase*10 + string.ascii_uppercase*10)
|
||
|
upp_dig_pun = list(string.digits*10 + string.ascii_lowercase*10 + string.ascii_uppercase*10 + string.punctuation*5)
|
||
|
digits_pun = list(string.ascii_lowercase*10 + string.digits*10 + string.punctuation*5)
|
||
|
upp_pun = list(string.ascii_lowercase*10 + string.ascii_uppercase*10 +string.punctuation*5)
|
||
|
|
||
|
|
||
|
#Yeah, spaghetti code, but couldn`t come up with a better idea
|
||
|
def generate(LEN,flags=None,how_many=None):
|
||
|
passwords = []
|
||
|
U,D,P = None,None,None
|
||
|
for flag_dict in flags:
|
||
|
if flag_dict['checkbox'] == 'Upper_reg' and flag_dict['value'] == 'y':
|
||
|
U = True
|
||
|
elif flag_dict['checkbox'] == 'Digits' and flag_dict['value'] == 'y':
|
||
|
D = True
|
||
|
elif flag_dict['checkbox'] == 'Punctuation' and flag_dict['value'] == 'y':
|
||
|
P = True
|
||
|
|
||
|
if U == None and D == None and P == None:
|
||
|
for password in range(int(how_many)):
|
||
|
password = random.sample(lowercase ,int(LEN))
|
||
|
password = ''.join(password)
|
||
|
passwords.append(password)
|
||
|
return passwords
|
||
|
|
||
|
elif U == True and D == None and P == None:
|
||
|
for password in range(int(how_many)):
|
||
|
password = random.sample(uppercase ,int(LEN))
|
||
|
password = ''.join(password)
|
||
|
passwords.append(password)
|
||
|
return passwords
|
||
|
|
||
|
elif U == None and D == True and P == None:
|
||
|
for password in range(int(how_many)):
|
||
|
password = random.sample(digits ,int(LEN))
|
||
|
password = ''.join(password)
|
||
|
passwords.append(password)
|
||
|
return passwords
|
||
|
|
||
|
elif U == None and D == None and P == True:
|
||
|
for password in range(int(how_many)):
|
||
|
password = random.sample(punct ,int(LEN))
|
||
|
password = ''.join(password)
|
||
|
passwords.append(password)
|
||
|
return passwords
|
||
|
|
||
|
elif U == True and D == True and P == None:
|
||
|
for password in range(int(how_many)):
|
||
|
password = random.sample(upp_dig ,int(LEN))
|
||
|
password = ''.join(password)
|
||
|
passwords.append(password)
|
||
|
return passwords
|
||
|
|
||
|
elif U == None and D == True and P == True:
|
||
|
for password in range(int(how_many)):
|
||
|
password = random.sample(digits_pun ,int(LEN))
|
||
|
password = ''.join(password)
|
||
|
passwords.append(password)
|
||
|
return passwords
|
||
|
|
||
|
elif U == True and D == None and P == True:
|
||
|
for password in range(int(how_many)):
|
||
|
password = random.sample(upp_pun ,int(LEN))
|
||
|
password = ''.join(password)
|
||
|
passwords.append(password)
|
||
|
return passwords
|
||
|
|
||
|
elif U == True and D == True and P == True:
|
||
|
for password in range(int(how_many)):
|
||
|
password = random.sample(upp_dig_pun ,int(LEN))
|
||
|
password = ''.join(password)
|
||
|
passwords.append(password)
|
||
|
return passwords
|
||
|
else:
|
||
|
print("Error!")
|