hallo zusammen,
ich habe heute angefangen ein Programm zu schreiben das mit dem Caesar-Shift-Code verschlüsselte Texte entschlüsselt.
Als erstes wird der Cipher-Text analysiert. Die verschiedenen Buchstaben werden gezählt und deren Prozentsatz der im text enthaltenden Buchstaben wird jeweils berechnet.
Dann kann man mit Bruteforce den Originaltext herausbekommen was aber bis jetzt nur funktioniert wenn das Alphabet einfach nur um x Stellen verschoben worden ist.
Jetzt möchte ich noch den Text noch so entschlüsseln:
der buchstabe E kommt sehr häufig in englischen und deutschen texten vor, also soll das programm nach dem häufigsten Buchstaben im cipher text suchen und ihn durch eine E ersetzen. Die Prozentzahl des Vorkommens der einzelnen Buchstaben habe ich aus dem englsichen Buch The Code Book von Simon Singh. Also sollen quasi die Prozenzahlen aus dem Buch mit denen im Ciphertext verglichen werden.
Dann möchte ich die Bruteforce variante ausbauen, sodass wirklich jede möglichkeit ausprobiert wird(aber trotzdem so dass jeder Buchstabe einduetig durch einen anderen ersetzt wird). Im moment gibt es ja nur 26 möglcihkeiten; nämlich das verschieben des Alphabets bis es wieder im normalen zustand ist.
Dann noch ein letztes anliegen. Zur Zeit benutze ich Timer um eine Schleife ausführen zu können, denn wenn ich eine normale repeat-until oder for-schleife nehme, bleibt das programm ja stehen bis die schleife zu ende ist, aber bei längeren cipher-texten dauert das halt ziemlich lange und wenn ich die bruteforce variante ausbaue dann erst recht. gibt es eine schnellere möglichkeit als den timer zu benutzen ohne dass das programm stehen bleibt?
gruß korny boy
P.S. das alles wie immer in delphi 7