My Password-generator web-app
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

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!")