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?
Na ja. Nicht blöd und kein Voodoo (außer die Geschwindigkeit des BF, da würde ich noch die Quelle angeben).
...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.
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?
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.
Hehe: Roter Kasten: Richtig geraten