def start(argv): utility = argv[:1][0] command = argv[1:] if utility in ['-h', 'help', '-help', '--help']: print say_help sys.exit() alpha_char = 'l' pattern = '' # service = '' # seed_user = '' file_path = '' passwords_file = '' output_name = 'base_' + "_".join(time.ctime(time.time()).replace(':', '-').split(' ')[1:-1]) length = 8 amount = 10000 # deep = 0 random_flag = False index_flag = False popular_flag = False leet_flag = False mix_flag = False concat_flag = False domains_flag = False logins_flag = False for part in partition(' '.join(command)): if len(part) == 1: if part[0] in ['-x', '-mix']: mix_flag = True elif part[0] in ['-z', '-concat']: concat_flag = True elif part[0] in ['-r', '-random']: random_flag = True elif part[0] in ['-i', '-index']: index_flag = True elif part[0] in ['-w', '-worst', '-popular']: # print 'worst' popular_flag = True elif part[0] in ['-t', '-leet']: leet_flag = True elif part[0] in ['-d', '-domains']: domains_flag = True elif part[0] in ['-l', '-logins']: logins_flag = True elif len(part) == 2: opt, arg = part if opt in ['-a', '-alphabet']: alpha_char = arg elif opt in ['-l', '-length']: length = int(arg) elif opt in ['-c', '-amount']: amount = int(arg) elif opt in ['-e', '-pattern']: if arg in ['ldd', 'uldd', 'ldddd', 'uldddd', 'ulll', 'uuu']: pattern = arg else: pattern = 'none' elif opt in ['-f', '-logins', '-file_path', '-emails', '-emails_file']: file_path = main_path + arg elif opt in ['-p', '-passwords', '-passwords_file']: passwords_file = main_path + arg elif opt in ['-o', '-output_name', '-output']: output_name = arg if utility == 'addpass': try: output = add_passwords(file_path, alpha_char, length, amount, pattern, random_flag, index_flag, popular_flag, leet_flag) except Exception as e: print 'addpass ' + e.message sys.exit() elif utility == 'passgen': try: output = password_generator(alpha_char, length, amount, pattern, random_flag, index_flag, popular_flag, leet_flag) except Exception as e: print 'passgen ' + e.message sys.exit() elif utility == 'join': try: output = the_join(mix_flag, concat_flag, passwords_file, file_path) except Exception as e: print 'join ' + e.message elif utility == 'extract': try: output = extract(logins_flag, domains_flag, file_path) except Exception as e: print 'extractor ' + e.message sys.exit() else: print 'Invalid utility!' sys.exit() list_to_file(output, main_path + output_name) return output
def add_passwords(file_path, alpha_char, length, amount, pattern, random_flag, index_flag, popular_flag, leet_flag): logins = file_to_list(file_path) passwords = password_generator(alpha_char, length, amount, pattern, random_flag, index_flag, popular_flag, leet_flag) return mix_logins_and_passwords(logins, passwords, ':')