Mein Lehrer hat hundertprozentig vom Cäsar-Chiffre geredet, diesen anderen hat er noch nie erwähnt. Und von I auf V komme ich, weil das I ja um den ASCII-Wert von A verschoben werden soll, also um 65. und wenn man von I an das Alphabet immer wieder wiederholt, ist der 65. Buchstabe V.
I J K L M N O P Q R S T U V W X Y Z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z A B C D E F G H I J K L M N O P Q R S T U V
In der Regel wird bei solchen Chiffren nicht vom ASCII-Wert ausgegangen, sondern vom Buchstabenwert, sprich A=1, B=2, usw.
1. Den Buchstabenwert kannst du dadurch erhalten, indem du den gesamten Text mit UpperCase() in Grossbuchstaben verwandelst und dann vom Ascii-Wert jedes Zeichens den Ascii-Wert von 'A' abziehst.
2. Das selbe machst du mit deinem Passwort. Dann addierst du den Zahlenwert des Buchstabens im Passwort zum Zahlenwert deines zu verschluesselnden Zeichens und nimmst das Ergebnis modulo der Anzahl von Zeichen in deinem Alphabet, denn damit faengst du wieder von vorne an, wenn du durch das Alphabet durch bist ( Z + 1 = A ).
Wenn du allerdings wirklich das GANZE ASCII verwenden willst, entfaellt natuerlich Punkt 1, und die Laenge deines Alphabets in Punkt 2 betraegt dann 256 Zeichen.
Das ganze koennte in Delphi dann in etwa so aussehen ...
Erzeuge drei TEdit EingabeFelder auf deinem Form (Edit1, Edit2 und Edit3) sowie einen Button (Button1). Dann erzeuge im Objectinspector ein OnClickEvent fuer den Button. in der Procedure Button1Click, die Delphi anlegt schreibe folgendes: [Ja Jeez, ich weiss, das ist schlechter Stil, aber ich will jetzt nicht erst das Erstellen seperater Funktionen in Delphi erklaehren muessen.]
Ich hoffe, das bringt dich weiter. bedenke aber, dass ASCII-Codes < 32 auch nicht druckbare Zeichen enthalten, die werden dann meist als schwarzes | dargestellt.
In der Regel wird bei solchen Chiffren nicht vom ASCII-Wert ausgegangen, sondern vom Buchstabenwert, sprich A=1, B=2, usw.
...
In deinem Fall wäre allerdings A=0, B=1,...
Was aber programmatisch natürlich deutlich mehr Sinn ergibt, weil das mit dem modulo ja sonst um einiges komplizierter wird.
Nur als kurze Anmerkung zur Klarstellung.
--
A human is a system for converting dust billions of years ago into dust billions of years from now via a roundabout process which involves checking email a lot.
Monkey, du hast mich erwischt ^^
Du kannst dir einen Schludrigkeitspunkt gut schreiben.
Was der bringt, werden wir sehen, wenn du 100 Stueck gesammelt hast ^^
So, ich durfte heute nen kleinen Vortrag halten und mit eurer Hilfe hab ich auch noch ein kleines Programm zusammengewerkelt, das anders funktioniert als ich erwartet hatte, aber der Lehrer war damit zufrieden und das is doch die Hauptsache
Der verschlüsselte Text bestand zwar immer aus aneinander gereihten Zeichen wie ŠãÚÞ³âÕãªà, aber nuja, solange er glücklich is^^
Das ist doch auch korrekt, nehme ich an. Denn schliesslich besteht ASCII ja nicht nur aus dem Alphabet und den Zahlen von 0-9. Mit den hier beschriebenen Methoden hast du eine isomorphe Abbildung des kompletten Ascii-Raumes auf den kompletten Ascii-Raum.
Wenn du unbedingt nur von und in ein Subset von Ascii abbilden willst, musst du ggf noch eine isomorphe Abbildung deines Subsets auf eine zusammenhaengende Teilmenge der natuerlichen Zahlen einfuehren, sofern deine Ascii-Teilmenge nicht ebenfalls zusammenhaengend ist, da du sonst keine Modulo-Operationen ausfuehren kannst.
Andererseits .. warum nicht das komplette ASCII verwenden ? Menschenlesbarkeit wird ueberbewertet.