parent
cca4dcb0cb
commit
67d1f74364
@ -0,0 +1,56 @@
|
|||||||
|
import string, itertools
|
||||||
|
from progress.bar import Bar
|
||||||
|
|
||||||
|
# buchstaben = string.ascii_uppercase + string.ascii_lowercase + string.digits
|
||||||
|
anfangsbuchstaben = ('S', 's', 'K', 'k', 'A', 'a', 'P', 'p', 'B', 'b', 'M', 'm', 'D', 'd', 'E', 'e', 'I', 'i', 'W', 'w')
|
||||||
|
buchstaben = ('e', 'n', 'i', 'r', 's', 't', 'a', 'd', 'h', 'u', 'l', 'c', 'e', 'g', 'm', 'o', 'b', 'w', 'f', 'k', 'z')
|
||||||
|
ziffern = tuple(string.digits)
|
||||||
|
test_passwort = "Saal"
|
||||||
|
LINE_UP = '\033[1A'
|
||||||
|
LINE_CLEAR = '\x1b[2K'
|
||||||
|
DEBUG = False
|
||||||
|
|
||||||
|
|
||||||
|
def get_time_forMax(MaxChoices):
|
||||||
|
# maxSek = int(MaxChoices / 309598)
|
||||||
|
maxSek = int(MaxChoices / 200000)
|
||||||
|
max = int(maxSek/60)
|
||||||
|
if max > 60:
|
||||||
|
max = int(max/60)
|
||||||
|
if max > 24:
|
||||||
|
max = int(max/24)
|
||||||
|
return f"{max} Days"
|
||||||
|
return f"{max}h"
|
||||||
|
else:
|
||||||
|
return f"{max}min"
|
||||||
|
|
||||||
|
|
||||||
|
def get_choices(letters: list) -> int:
|
||||||
|
choices = 1
|
||||||
|
maxZeichen = len(buchstaben) + len(ziffern)
|
||||||
|
for i in letters:
|
||||||
|
choices += pow(maxZeichen, i)
|
||||||
|
return choices * len(anfangsbuchstaben)
|
||||||
|
|
||||||
|
|
||||||
|
def crack_password(letter_range: range) -> None:
|
||||||
|
num_versuch = 0
|
||||||
|
maxChoices = get_choices(list(letter_range))
|
||||||
|
print("Möglichkeiten: {:,}".format(maxChoices))
|
||||||
|
print(f"MaxTime/100% Power: {get_time_forMax(maxChoices)}")
|
||||||
|
for num in letter_range:
|
||||||
|
for anfang in anfangsbuchstaben:
|
||||||
|
|
||||||
|
for versuch in itertools.product(buchstaben+ziffern, repeat=num-1):
|
||||||
|
versuch = "".join(versuch)
|
||||||
|
versuch = anfang + versuch
|
||||||
|
print("Aktuell: {:,}".format(num_versuch), f" Versuch: {versuch}") if DEBUG else None
|
||||||
|
print(LINE_UP, end=LINE_CLEAR) if DEBUG else None
|
||||||
|
num_versuch += 1
|
||||||
|
if versuch == test_passwort:
|
||||||
|
print(f"\n\nRichtiges Passwort lautet: {versuch}","\nNötige Versuche: {:,}".format(num_versuch))
|
||||||
|
return
|
||||||
|
|
||||||
|
minChoice = input("please enter choices: ")
|
||||||
|
|
||||||
|
crack_password(range(int(minChoice), int(minChoice)+1))
|
||||||
Loading…
Reference in new issue