Der Algorithmus konvertiert die Eingabezahl quasi in ein Ziffernsystem, wobei die "Ziffern" hier jedes Zeichen aus einem vorgegebenen String sein können.
Wenn du diese Funktion nimmst:
Delphi-Quellcode:
function NumberToChars(Value: Cardinal; const DigitSet: string): string;
var
dsl: Cardinal;
begin
dsl := Length(DigitSet);
Result := '';
repeat
Result := DigitSet[Value mod dsl + 1] + Result;
Value := Value div dsl;
until Value = 0;
end;
Damit kannst du damit eine Zahl in die oktale, dezimalzahle oder auch hexadezimale Darstellung konvertieren:
Delphi-Quellcode:
Okta := NumberToChars(Number, '01234567');
Dezi := NumberToChars(Number, '0123456789');
Hexa := NumberToChars(Number, '0123456789ABCDEF');
oder eben auch:
Delphi-Quellcode:
function BruteForce(Nb: integer): string;
begin
Result := NumberToChars(Cardinal(Nb), '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz°!"§$%&/()=?`´\}][{^+*~''#_:.,;<>|@');
end;
Normalerweise sollte für 10*97+11 der String 'AB' rauskommen (97=Länge des Zeichenvorrats).