Frage zu Cäsar - Verschlüsselung!

Ravenhall

Mitglied
Hallo Programmierer,

hätte da mal eine Frage. Wenn ich den Cäsar Code zum verschlüsseln her nehme dann kann ich ja die Buchstaben immer nur im den gleichen Wert verschieben. Wie schaffe ich es, das ich jeden Buchstaben anders verschiebe. Also z. B. Caesar = 422311 daraus würde also dann Gcgvbs werden. Mach ich das in einer for - Schleife? wenn ja wie würdet ihr das angehen. Bin leider noch nicht so gewandet im Programmieren. Daher bitte ich euch, nicht gleich mit "komplizierten" Lösungen zu kommen.

Danke schon mal.

LG
 
Ja mit ner for Schleife.
Hast du gar keine Idee wie du das lösen könntest? Wie würdest du das per Hand machen?
 
Naja per Hand würd ich erstmal hingehen und schaun: C --> wird im 4 Stellen verrückt also d, e, f, g --> ist also zu G geworden und das halt für die anderen auch.

Ich weis ja wie ich es in Cäsar Standart machen würde. Da würd ich einfach eine Vorschleife laufen lassen, aber damit würden ja alle Buchstaben gleich verändert werden. Daher kann ich es mir nicht vorstellen wie ich das für die einzelnen mache.
Hilf mir bitte etwas.
 
Für den ersten Buchstaben schnappst du dir die erste Zahl aus deiner Verschiebung, für den Zweiten Buchstaben die zweite Zahl, für den dritten die dritte, und so weiter...
Ein paar Dinge gibts dann noch zu bedenken. Was passiert wenn dein Text länger ist als die Verschiebungen?
 
ok hab mir jetzt folgendes Überlegt: n=Caesar; s=47623
Java:
public String Variante1 (String n, int s){

int array = new int [s];
int arrayPos = 0; String result = ""; int help = 0;
 
for (int i = 0; i < n.length(i); i++){
 if(arrayPos<5){

help = n.charAt(i); + array[arrayPos];
result = result + (char) help;

arrayPos ++;
}
else {
arrayPos = 0;
}

}
return result;
}
 
Zuletzt bearbeitet:
Du benutzt in deiner Methode nirgends das
Code:
s
. Übergib das doch besser so:
Code:
public String encrypt (String message, int[] keys)
Das macht den Zugriff auf die einzelnen Schlüssel sehr viel einfacher. Und du kannst auch ne 10 als Verschiebung wählen 😉
 
Auch jetzt berücksichtigst du das s noch nicht, du musst aus der Zahl noch nen int[] Array machen. Und der Teil würde dir dann wegfallen.
 

Zurück
Oben