Geht das: ?
-
Also, ich habe so ein Eingabefeld (bei einer Windows Anwendung) wo man was eingeben muss (Passwort z.B.) und wenn das eingegebene Passwort falsch ist erscheint eine Fehlermeldung, wo man auf enter drücken muss um dieses Passwort danach erneut einzugeben. Ich hab mir jetzt gedacht, ob es möglich ist so ein Programm zu erstellen, das alle möglichen Kombinationen durchtestet, bis es eine richtige gefunden hat.
Weiß jemand ob das klappt und wie kompliziert es ist? Oder hat vielleicht jemand Bock es selber zu versuchen (wenn es nicht so aufwendig ist)?
-
Ich hab hab mir sowas auch schon mal überlegt, hatte aber keine Lust das zu proggen.
#Also: ERstmal Grundsätzliches: Es gibt len(Wort)Fakultät Möglichkeiten....Zur Technik:
Ich dachte mir das so: Wort ist abcdDann davon alle Kombinationen:
start:: erst letzten beiden umdrehen: abdc
dann letzten drei einemal drehen:
adbc dann wieder letzten umdrehen: adcb
dann wieder letzte drei drehen:acdb und wieder umdrehen: acbd
dann letzten vier drehen:
aus abcd wird dabcgoto start;
naja, immer so weiter, bis du dann ale Kombinationen hast. Die wird ich in nem Array speichern und dann musst du es noch schaffen, dass das Programm die Wörter automatisch eingibt.
Diese Methode geht aber nur, wenn du die Zeichenanzahl weißt, ansonsten ist das hier einfacher:
Denke dir jeden Buchstaben einfach als Zahl ->a = 1 b = 2...dann zählst du einfach:
a b c d e f ... z aa ab ac ad ae... az ba bb... bz... za...zz... aaausw.
-
Jupp,sowas ist möglich, und sowas gibts schon. Die Methode nennt sich Brute Force. Maxi: Es gibt mehr Buchstaben im Alphabet als abcd
-
len(Wort)Fakultät Möglichkeiten
Das wär ja cool. Dann wären die Passwörter ziemlich unsicher. Denn sogar mit 8 Stellen gäbe es dann nur 40320 Möglichkeiten...
Es gibt 26^len Möglichkeiten. Wenn man nur die Kleinbuchstaben a-z beachtet.
[ Dieser Beitrag wurde am 04.03.2003 um 19:11 Uhr von cd9000 editiert. ]
-
und ob das Sinn macht, die alle in einem Array zu speichern, bevor
losprobiert wird, wage ich mal zu bezweifelnStefan
-
ausserdem gibts schon einige dieser progs und darum ist oft auch nach etwa dreimal falsches eingeben vom passwort der account für einige stunden gesperrt.
bye
donay
-
Original erstellt von donay:
darum ist oft auch nach etwa dreimal falsches eingeben vom passwort der account für einige stunden gesperrt.Viel sinnvoller finde ich die Variante, dass die Meldung ob das Passwort stimmt verzögert ausgegeben wird. Eine Sekunde sollte da schon reichen.
Das wären bei einem 6 stelligen Passwort mit 40 möglichen Zeichen (a-z, 0-9, ein bisschen kleinkram) immerhin durchschnittlich 40^6/2 = 2048000000 Sekunden. Das entspricht ungefähr 65 Jahren.
-
Falls Du immer noch ein Brute Force Programm coden willst, würde ich Dir raten, nicht über die Eingabemaske zuarbeiten. Viel mehr solltest Du das (wahrscheinl. mit MD5) verschlüsselte Passwort suchen und mit diesen direkt den Abgleich tätigen.
[edit]
corrected minor errors
Kommt davon wenn man seinen eigenen Text nicht nochmal durchliest, bevor man postet.;)
[/edit][ Dieser Beitrag wurde am 04.03.2003 um 22:34 Uhr von c++==d editiert. ]
-
Vielleicht lohnt es sich eher darauf abzuzielen, dass die User schlechte Passwörter benutzen und man versucht diese erst einmal mit einem sogenannten "dictonary attack", also dass man erst einmal ein paar (1000) bekannte Wörter durch das Ding jagt, bevor man wirklich alle möglichen kombinationen durchgeht, ich denke so hat man mehr Erfolg.
@c++=d
das Problem ist aber, dass man Zugriff auf die Passwort Datei braucht für deine Methode!
-
Das ist mir danach auch aufgefallen. Meine erste Methode getht nur, wenn die Buchstaben des Passwortes bekannt sind... Aber wann ist das schon so? Naja kommt davon, wenn man grad ne Klasenarbeit geschrieben hat und man glaubt sie vferkackt zu haben. Aber ich denke meine zweite Möglichkeit ist schon eher machbar. Gruß, Maxi