| """Remove duplicate passwords that either exist in the original password list, were not translated or were translated to the same password twice.""" | |
| import argparse | |
| from tqdm import tqdm | |
| def main(): | |
| parser = argparse.ArgumentParser(description="Remove passwords that exist in the original list and remove deduplicates from the output one.") | |
| parser.add_argument("-i", "--input_file", required=True, help="Path to the original password list.") | |
| parser.add_argument("-t", "--translated_file", required=True, help="Path to the translated password list.") | |
| parser.add_argument("-o", "--output_file", required=True, help="Path to the output deduplicated password list.") | |
| args = parser.parse_args() | |
| try: | |
| with open(args.input_file, 'r', encoding='latin1') as file: | |
| original = set(file.readlines()) | |
| with open(args.translated_file, 'r', encoding='latin1') as file: | |
| translated = file.readlines() | |
| final_list = [] | |
| final_set = set() | |
| for newpa in tqdm(translated): | |
| if newpa in original: | |
| continue | |
| if newpa in final_set: | |
| continue | |
| final_list.append(newpa) | |
| final_set.add(newpa) | |
| with open(args.output_file, 'w', encoding='latin1') as file: | |
| file.writelines(final_list) | |
| except FileNotFoundError: | |
| print("Some file was not found.") | |
| if __name__ == "__main__": | |
| main() | |