Leuchtturm - Di 01.01.08 18:43
Titel: Caesar-Entschlüsselung funktioniert nicht :-(
Hi,
ich habe ein Simples Programm geschrieben womit man Text mit der Caesarverschlüsselung verschlüsseln und entschlüsseln (sollen) kann.
Die Verschlüsselung funktioniert einwandfrei :D
Die Entschlüsselung leider nicht :? :
Der Code läuft in einer Schleife, so oft bis der gesamte Text abgearbeitet ist
Versuch
1: 2: 3:
| int ascii = (int)Zeichen; klartextzeichen = (97 - ascii - Schluessel) % 26; Klartext += (char)klartextzeichen; |
ascii ... ascii - Zeichen
klartextzeichen ... Zeichen im klartext
Klartext ... gesamter Klartext
Da kommt aber nur Mist raus.
Wie müsste man es anders machen damit man den richtigen Text rausbekommt?
Vielen Dank im voraus :zustimm:
mfG
Leuchtturm :wave:
Kha - Di 01.01.08 19:22
Leuchtturm hat folgendes geschrieben: |
Versuch 1:
| klartextzeichen = (97 - ascii - Schluessel) % 26; | |
"- ascii"? Wird das ein revertierter Cäsar oder wie oder was :gruebel: ?
Einen stinknormalen Cäsar für Kleinbuchstaben würde ich jedenfalls einfach so machen:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| public static char Encrypt(char c, int rot) { return (char)((c - 'a' + rot + 26) % 26 + 'a'); }
static void Main(string[] args) { int rot = int.Parse(Console.ReadLine()); char[] crypt = Console.ReadLine().ToCharArray().Select(c => Encrypt(c, rot)).ToArray(); Console.WriteLine(new string(crypt)); Console.WriteLine(new string(crypt.Select(c => Encrypt(c, -rot)).ToArray()));
Console.ReadLine(); } |
[edit] Decrypt-Methode entfernt *g* . [/edit]