Dekodieren

Zonkdd

Mitglied
hallo,

ich hab da ein problem und weiß nich wie ich es angehen soll, ich habe folgende aufgabenstellung:

Schreiben Sie ein Java-Programm, das den verschl¨usselten Text secret =
“dpualyzvuuludlukl“ mit dem Schl¨ussel k=7 wieder dekodiert.
Hinweis: Auf Grund der ASCII-Kodierung der Zeichen des Alphabets kann man mit
Zeichen einfach “rechnen“. So ist z. B. ‘a‘+ 10 = ‘k‘. Nach ‘z‘ soll der Zyklus wieder
mit ‘a‘ beginnen.

Aber wie schreibe ich das in java ? ich hab zwar schon ne lösung im netz gefunden:

Java:
class CodeKnacker {
  public static void main(String[] args) {
  int k = 0;
  String[] dictionary = new String[100];
  dictionary[0] = "wintersonnenwende";
  String toDecode = "dpualyzvuuludlukl";
  int Laenge = toDecode.length();
  char[] Feld = new char[Laenge];
  char neu;
  String raus = "";
  for (int j = 0; j < 26; j++) {
    for (int i = 0; i < Laenge; i++) {
         neu = (char)(((toDecode.charAt(i)-97+j)%26)+97);
         raus += neu;
    }
    System.out.println(raus);
    while (dictionary[k] != null) {
        if (raus.contains(dictionary[k])) {
            System.out.println("Ergebnis: " + raus);
        break;
        }
        k++;
    }
    raus = "";
    k = 0;
  }
}
}

aber ist es denn nicht möglich einen String vorzugeben der dann wirklich nur mihilfe des schlüssels dekodiert wirde ohne
Java:
dictionary[0] = "wintersonnenwende";
vorzugeben ?

also wirklich nur einen Code den er dann anhand des schlüssels "k=7" dekodiert ?
 

XHelp

Top Contributor
Du musst ja nur jedes Zeichen + oder - 7 rechnen. (sofern es sich um Caesar handelt) Modulo kennst ja auch schon.
Also einfach eine Schleife über dein Wort und mit jedem Zeichen berechnung anstellen.
 

Zonkdd

Mitglied
und wie schreibt man dass dann ich muss sagen ich weiß nich wie ich nen den String +7 rechne und dabei noch sage dass es halt ab z neu losgeht :/
 
M

Marcinek

Gast
Googeln: Cäsar Chiffre, Affine Transformations Chiffre

Man kann mit der Ascii Representation arbeiten, aber ich würde ein Array aus Buchstaben machen und dann anhand des index rechnen.
 

Zonkdd

Mitglied
hm ich habs gegoogelt und alles aber ich versteh echt noch nicht so recht wie ich das in java schreiben soll ... ich weiß "wir machen keine hausaufgaben für euch " aber kann mir vllt jmd nen simples beispiel zeigen weil ich kanns grad echt nich nachvollziehen und bin auch grad erstes semester und hatte vorher auch nix mit java am hut.
 

Zonkdd

Mitglied
also ich dachte mir ich gebe dem Prog einen String und einen Schlüssel (k=7)
und zu jedem buchstaben im String sollen 7 dazuaddiert werden also a entpricht dann h wenn ich mich net verzählt habe .

und ich muss ehrlich sagen ich versteh den quelltext den ich auf einer anderen seite gefunden habe nich so ganz weil oben die eigentliche lösungs schon deklariert wurde ...
 

XHelp

Top Contributor
Dann fang auch klein an.
1. übergib dem Programm ein String und Schlüssel. Wenn das klappt, dann:
2. bastle eine Schleife, die über alle Buchstaben läuft. Wenn das klappt, dann:
3. Addiere zu jedem Zeichen den Schlüssel. Wenn das klappt, dann:
4. Überlege, was passiert, wenn du zu 'z' den Schlüssel addierst.
... usw
 
Ähnliche Java Themen

Ähnliche Java Themen


Oben