Entwickler-Ecke

Algorithmen, Optimierung und Assembler - Caesar verschlüsselung


Herr Bananerama - Fr 21.12.07 10:56
Titel: Caesar verschlüsselung
Hi,
Mein parallel Info-Kurs macht zur Zeit Verschlüsselung und da hab ich mir gedacht, das ist doch ganz simpel einfach so ein bissle verschieben und schon hast du eine Caesar Verschlüsselung. Nun hab ich aber gesehen das die für verschlüsseln und entschlüsseln nur ein Memo Feld benutzen! Ich könnte mir höchstens vorstellen, dass die immer um die hälfte des Alphabets verschlüsseln, jedoch wäre das nicht eine sehr dumme Art, weil dann diese leicht zu lösende Caesarverschlüsselung noch leichter zu entschlüsseln ist (von dritten)? Wenn das nicht der Trick ist, welcher ist es dann?

Freue mich über alle Antworten


Tarry - Fr 21.12.07 11:01

Hi, vielleicht mit dynamischen Arrays (<--- Kenn mich damit aber überhaupt nicht aus, deshalb isses wahrscheinlich Müll ;))
Oder aber mit nem zweitem unsichtbaren Memo (so würde ich es machen)

Gruß
Tarry

PS: Hier [http://www.delphi-forum.de/topic_caesar+verschluesselung+problem+mit+algorithmus_70517.htmll] findest du nen verschlüsselungs Algo, falls du ihn suchst.


Gausi - Fr 21.12.07 11:04

In dem Memo steht der Text. Klickt man auf "Verschlüsseln", wird dieser durch den verschlüsselten Text ersetzt. Klickt man auf "Entschlüsseln", wird der Klartext wiederhergestellt. Das funktioniert mit jeder Art von Verschlüsselung, nicht nur mit Caesar, und auch nicht nur mit Rot13 (so nennt sich das mit der Hälfte des Alphabets ;-)).


Herr Bananerama - Fr 21.12.07 11:06

user profile iconTarry hat folgendes geschrieben:
Hi, vielleicht mit dynamischen Arrays (<--- Kenn mich damit aber überhaupt nicht aus, deshalb isses wahrscheinlich Müll ;))
Oder aber mit nem zweitem unsichtbaren Memo (so würde ich es machen)

Gruß
Tarry

PS: Hier [http://www.delphi-forum.de/topic_caesar+verschluesselung+problem+mit+algorithmus_70517.htmll] findest du nen verschlüsselungs Algo, falls du ihn suchst.


Erstmal danke für die Antwort, den Algo brauch ich net, kann mir das so in etwa denken aber wie meinst du das mit dem unsichtbaren Memo Feld


Herr Bananerama - Fr 21.12.07 11:08

user profile iconGausi hat folgendes geschrieben:
In dem Memo steht der Text. Klickt man auf "Verschlüsseln", wird dieser durch den verschlüsselten Text ersetzt. Klickt man auf "Entschlüsseln", wird der Klartext wiederhergestellt. Das funktioniert mit jeder Art von Verschlüsselung, nicht nur mit Caesar, und auch nicht nur mit Rot13 (so nennt sich das mit der Hälfte des Alphabets ;-)).


Sorry ich habe mich falsch Ausgedrück, ich meine die machen das mit einem Button


Gausi - Fr 21.12.07 11:14

Wenn die nur einen Button haben, deutet das in der Tat auf eine komplett symetrische Verschlüsselung hin. D.h. z.B. m->x und x->m. Rot13 mus es nicht unbedingt sein.

Alternativ kann man sich natürlich merken, wie oft man den Button geklickt hat (z.B. in der Eigenschaft Tag) und abwechselnd ver- und entschlüsseln. Aber das ist alles rumraterei ;-)

Nebenbei: Ein unsichtbares Memofeld ist igitt bäh bah pfui. Ein Memofeld ist zum Anzeigen da, nicht um irgendwelche Daten zu speichern. Dafür nimmt man einen String, oder eine Stringlist. :mahn:


Tarry - Fr 21.12.07 11:17

Naja, einfach ne RadioGroup in der man dann den Modus auswählen kann, ich häng mal meine, zugegebenermaßen ältere Version an.

Gruß
Tarry

EDIT:

user profile iconGausi hat folgendes geschrieben:

Nebenbei: Ein unsichtbares Memofeld ist igitt bäh bah pfui. Ein Memofeld ist zum Anzeigen da, nicht um irgendwelche Daten zu speichern. Dafür nimmt man einen String, oder eine Stringlist. :mahn:


Aber kann ein String den auch Zeilenumbrüche vertragen, also kann ich das so wie memBeispiel.Lines[3] machen?


Herr Bananerama - Fr 21.12.07 11:33

user profile iconTarry hat folgendes geschrieben:
Naja, einfach ne RadioGroup in der man dann den Modus auswählen kann, ich häng mal meine, zugegebenermaßen ältere Version an.

Aber kann ein String den auch Zeilenumbrüche Vertragen, also kann ich das so wie memBeispiel.Lines[3] machen?


Das mit der Radio Group wäre genau das gleiche wie mit 2 Button ;) und sich merken op man zuletzt verlüsselt oder entschlüsselt hat ist auch doof weil man dann nicht zweimal entschlüsseln kann. Aber beides ist natürlich möglich. Ich denke es wurde einfach mit diesem Rot13 gearbeitet.

Bei Strings kann man glaube ich Zeilenbrüche machen: das geht mit +#13#10
In welcher Zeile sich etwas befindet kann man bestimmt auch irgendwie herausfinden. Ich könnte mir z.B. vorstellen das man einfach nachfragt wie oft +#13#10 benutzt worden ist. Dein Programm gefällt mir sehr gut , danke dafür. Hat mir ne kleine Inspiration gegeben, wie man das schön auf der Gui darstellen kann. Gruß Herr Bananerama


Wolle92 - Fr 21.12.07 12:28

@Tarry: Das, was das Programm in deinem Anhang macht, ist keine Caesar-Verschlüsselung, bei der Caesar-Verschlüsselung werden die Buchstaben nur verschoben, bei deinem Programm nicht...


Tarry - Fr 21.12.07 12:33

Das Verschieben ist ja nur eine Sonderform des Vertauschen... Du kannst auch mit meinem Prog das Alphabet verschieben.
Ich war nur zu faul dafür ne Funktion zu schreiben, werde ich jetzt wohl auch nicht mehr machen, aber es wäre wie gesagt ja nur ne Sonderform. Dadurch ist die Verschlüsselung mit meinem Prog ja nochmal sicherere als die einfache Verschiebung.

Gruß
Tarry


Wolle92 - Fr 21.12.07 12:44

Naja, aber hier gehts ja konkret um Caesar...
Verschieben geht auch einfacher...
Du brauchst nur ne Zahl und erhöhst die ASCII-Codes dementsprechend (natürlich musst du, wenn du über den für Z hinausgehst wieder 26 abziehen)