Die Formel berechnet also die Anzahl der möglichen Kennwörter, die sich mit den Checkbox-Einstellungen generieren lassen. Aus dieser Anzahl wird unter der Annahme, das soundsoviele Kennwörter pro Sekunde mit brute force probiert werden, die Anzahl der Jahre ausgerechnet, die ein BF-Algorithmus benötigt, um alle Kombinationen durchzurechnen. Soweit richtig geraten?
Korrekt
Na ja. Nicht blöd und kein Voodoo (außer die Geschwindigkeit des BF, da würde ich noch die Quelle angeben).
hier
...jahre
- cooler, irreführender Bezeichner
Wenn ich die Idee richtig verstanden habe, ist das weder irreführend noch cool, weil richtig.
...die Variablen bekommen englische Bezeichner.
Was hast Du gegen deutsche Bezeichner? Lieber einen verständlichen deutschen Bezeichner als ein mit google.translate übersetzten, über den sich die Engländer krank lachen. aber deine 'a,b,c,d,e' etc. solltest Du mit besser benennen.
Ich sorge schon mal vor, falls jemand aus Silicon Valley mein Prog abkauft und ich in das Hauptbüro in USA ziehen muss, müssen die Variablennamen nicht geändert werden. Und für die Engländer ist lachen gesund.
Delphi-Quellcode:
var
AnzahlUnterschiedlicherZeichen : integer;
begin
AnzahlUnterschiedlicherZeichen := 0;
if UppercaseCB.Checked then inc (AnzahlUnterschiedlicherZeichen , 26);
if LowercaseCB.Checked then inc (AnzahlUnterschiedlicherZeichen , 26);
if DigitsCB.Checked then inc (AnzahlUnterschiedlicherZeichen , 10);
if ArithmoperatorsCB.Checked then inc(AnzahlUnterschiedlicherZeichen ,5);
if BracketCB.Checked then inc (AnzahlUnterschiedlicherZeichen , 8);
if SpecialcharsCB.Checked then inc (AnzahlUnterschiedlicherZeichen , 19);
...
Dann versteht man gleich, worum es geht. Oder?
Habe diese Schreibweise noch nie gesehen.
Zum Problem:
Anstatt 'Power' zu nehmen, machst Du das mit einer Schleife und teilst 1x in der Schleife, falls das Zwischenergebnis zu groß wird. Wenn die Schleife durch ist, prüfst Du, ob Du schon geteilt hast. Wenn nicht (weil das Zwischenergebnis doch nicht zu hoch war), teilst Du dann.
Hm... kapiere es nocht nicht, aber denke in Ruhe noch Mal nach. Danke!