Entwickler-Ecke

Open Source Projekte - Beale-Chiffre


Fiete - Mo 20.06.16 15:14
Titel: Beale-Chiffre
Moin,
das Programm ver- und entschlüsselt Texte nach dem Bealeverfahren.
https://de.wikipedia.org/wiki/Beale-Chiffre
Zum Ver- und Entschlüsseln wird eine txt-Datei benötigt.
Diese Datei ist das Buch nach dem codiert wird. Jedes Wort
wird mit einer Nummer versehen. Die Zeichensetzung im Text
muss fehlerfrei sein. d.h. rechts von jedem Satzzeichen
steht genau ein Leerzeichen. Das Programm korrigiert einiges, aber wohl nicht alles.
Zum Entschlüsseln muss eine Zahlenliste(Bealezahlen) geladen werden.
Beale
z.B. Als Bealetext wird die <Unabhängigkeitserklärung.txt> geladen, als BealeZahlen <Beale Seite 2.num>.
Jede Zahl n wird ersetzt durch den Anfangsbuchstaben des n-ten Wortes in der Textdatei(Buch).
In der Lösung
I HAVE DEPOSITED IN THE COUNTY OF BEDFORD ABOUT FOUR MILES FROM BUFORDS IN AN EXCAVATION OR VAULT SIX FEET BELOW THE SURFACE OF THE GROUND THE FOLLOWING ARTICLES BELONGING JOINTLY TO THE PARTIES WHOSE NAMES ARE GIVEN IN NUMBER THREE HEREWITH.

THE FIRST DEPOSIT CONSISTED OF TEN HUNDRED AND FOURTEEN POUNDS (1014 lbs.) OF GOLD AND THIRTY EIGHT HUNDRED AND TWELVE POUNDS (3812 lbs.) OF SILVER, DEPOSITED NOV. EIGHTEEN NINETEEN.(NOV.1819)

THE SECOND WAS MADE DEC. EIGHTEEN TWENTY-ONE (DEC 1821) AND CONSISTED OF NINETEEN HUNDRED AND SEVEN POUNDS OF GOLD AND TWELVE HUNDRED AND EIGHTY EIGHT OF SILVER; ALSO JEWELS OBTAINED IN ST. LOUIS IN EXCHANGE TO SAVE TRANSPORTATION, AND VALUED AT THIRTEEN THOUSAND DOLLARS.

THE ABOVE IS SECURELY PACKED IN IRON POTS WITH IRON COVERS. THE VAULT IS ROUGHLY LINED WITH STONE, AND THE VESSELS REST ON SOLID STONE, AND ARE COVERED WITH OTHERS.

PAPER NUMBER ONE DESCRIBES THE EXACT LOCALITY OF THE VAULT, SO THAT NO DIFFICULTY WILL BE HAD IN FINDING IT.
tauchen Buchstaben auf welche in der Buch-Datei nicht vorkommen!?
Daher sieht die Programmlösung nicht einwandfrei aus.

Beim Verschlüsseln wird die Nachricht als Textdatei geladen,
aus der Buchdatei werden die Nummern der Anfangsbuchstaben in einem dynamischen Array gespeichert.(BListe:Array of TListe mit TListe=Array of Integer)
Falls mehrere Zahlen zu einem Buchstaben gespeichert sind, dann wird per Zufall eine Zahl gewählt.
Gibt es zu einem Buchstaben keinen Eintrag, so wird ein Hinweis angezeigt und keine Zahl erzeugt.
Die erzeugte Zahlenliste kann gespeichert werden.
Im Ordner Nachrichten sind alle drei Beale-Seiten vorhanden, wer Zeit und Lust hat kann sich ans Entschlüsseln wagen.

Viel Spaß beim Testen
Gruß Fiete