61 lines
1.9 KiB
Python
Executable File
61 lines
1.9 KiB
Python
Executable File
from itertools import permutations, combinations, product
|
|
from os import system, name
|
|
import sys
|
|
|
|
def clear():
|
|
if name == 'nt':
|
|
system('cls')
|
|
else:
|
|
system('clear')
|
|
|
|
def generate_passwords(elements):
|
|
passwords = set()
|
|
|
|
for length in range(1, len(elements) + 1):
|
|
for perm in permutations(elements, length):
|
|
passwords.add(''.join(perm))
|
|
|
|
for comb in combinations(elements, length):
|
|
for perm in permutations(comb):
|
|
passwords.add(''.join(perm))
|
|
|
|
for prod in product(elements, repeat=length):
|
|
passwords.add(''.join(prod))
|
|
|
|
return passwords
|
|
|
|
def estimate_file_size(passwords):
|
|
total_size = sum(len(pwd) + 1 for pwd in passwords)
|
|
return total_size
|
|
|
|
def main():
|
|
words = input("Bitte geben Sie die Wörter ein, getrennt durch Leerzeichen: ").split()
|
|
numbers = input("Bitte geben Sie die Zahlen ein, getrennt durch Leerzeichen: ").split()
|
|
symbols = input("Bitte geben Sie die Zeichen ein, getrennt durch Leerzeichen: ").split()
|
|
|
|
elements = words + numbers + symbols
|
|
|
|
print("Generiere Passwörter...")
|
|
passwords = generate_passwords(elements)
|
|
|
|
estimated_size = estimate_file_size(passwords)
|
|
print(f"Geschätzte Dateigröße: {estimated_size / 1024:.2f} KB")
|
|
print(f"Anzahl der generierten Passwörter: {len(passwords)}")
|
|
|
|
file_name = input("Bitte geben Sie den Namen der Ausgabedatei an (mit .txt Endung): ")
|
|
|
|
try:
|
|
with open(file_name, 'w') as file:
|
|
for pwd in passwords:
|
|
file.write(pwd + '\n')
|
|
print(f"Passwörter wurden erfolgreich in {file_name} geschrieben.")
|
|
except Exception as e:
|
|
print(f"Fehler beim Schreiben in die Datei: {e}", file=sys.stderr)
|
|
|
|
if __name__ == "__main__":
|
|
#clear()
|
|
def prCyan(skk): print("\033[96m{}\033[00m" .format(skk))
|
|
prCyan("Passwortlist Generator")
|
|
main()
|
|
|