• Wir präsentieren Dir heute ein Stellenangebot für einen Java Entwickler - m/w/d in Augsburg, München, Stuttgart oder Bamberg. Hier geht es zur Jobanzeige

Feststellen, dass Wert zu groß; Caesar Chiffre

T

Tete

Mitglied
Nabend,
ich habe folgendes Problem: Für meine Facharbeit soll ich unter anderem Caesar programmieren... An sich funktioniert die Verschiebung, aber die Werte nach 'z' /'Z' gehen weiter... Kann mir da wer helfen?

Main:
package crypt;
import java.util.*;
public class Main {

    public static Scanner sc = new Scanner(System.in);
    public static int eingabe,eingabeCaesar;
    public static boolean errorEingabe = true;
    public static Caesar c = new Caesar();
    
    public static void main(String[] args) {
        System.out.println("Facharbeit Kryptographie von ");
        System.out.println();
        System.out.println("Wählen Sie folgend wie Sie Ihren Klartext mittels historischer Chiffre chiffrieren wollen:");
        
        while(errorEingabe) {
            System.out.println("(1) Caesar-Chiffre     (2) Vigenere-Chiffre");
            eingabe = sc.nextInt();
            
            if (eingabe == 1) {
                errorEingabe = false;
                System.out.println("Caesar-Chiffre");
                System.out.println("Möchten Sie eine Chiffrierung (1) oder eine Dechiffrierung (2) durchführen?");
                eingabeCaesar = sc.nextInt();
                if(eingabeCaesar == 1) {
                    System.out.println("Bitte geben Sie zuerst den Klartext ein, drücken Sie danach enter und geben Sie anschließend den Schlüssel (ganze Zahl) ein");
                    System.out.println(c.encrypt(sc.next(),sc.nextInt()));
                }
                else if (eingabeCaesar == 2) {
                    System.out.println("Bitte geben Sie zuerst das Chiffrat ein, drücken Sie danach enter und geben Sie anschließend den Schlüssel (ganze Zahl) ein");
                    System.out.println(c.decrypt(sc.next(),sc.nextInt()));
                }
                else {
                    System.out.println("Ihre Eingabe ist ungültig.");
                    errorEingabe = true;
                }
            }
            else if (eingabe == 2) {
                errorEingabe = false;
            }
            else {
                System.out.println("Ihre Eingabe ist ungültig. Wählen Sie bitte:");
            }
        }
    }
}
Caesar:
package crypt;

public class Caesar {
    
    public char[] preEncryption, preDecryption;
    public String finishedEncryption,finishedDecryption;
    
    public String encrypt(String pText, int pKey) {
        char charArray[] = pText.toCharArray();
        preEncryption = new char[charArray.length];
        for (int i=0;i<charArray.length; i++) {
            preEncryption[i] = charArray[i];
        }
        for (int i=0;i<charArray.length; i++) {
            preEncryption[i] = (char) (preEncryption[i]+pKey);
        }
        finishedEncryption = new String(preEncryption);
        return finishedEncryption;
    }
    public String decrypt(String pText, int pKey) {
        char charArray[] = pText.toCharArray();
        preDecryption = new char[charArray.length];
        for (int i=0;i<charArray.length; i++) {
            preDecryption[i] = charArray[i];
        }
        for (int i=0;i<charArray.length; i++) {
            preDecryption[i] = (char) (preDecryption[i]-pKey);
        }
        finishedDecryption = new String(preDecryption);
        return finishedDecryption;
    }
}

Vielen Dank :) !
 
F

fhoffmann

Top Contributor
Auf die Schnelle fehlt in dem Code eine Modulo-Operation
Oder etwas ausführlicher: Du musst dir überlegen, welche Buchstaben du zulassen willst. Willst du beispielsweise nur GROSSBUCHSTABEN zulassen so musst du dir den Code (ANSI, ASCII oder UTF8 (ist alles gleich)) dieser Buchstaben angucken:
A = 65
...
Z = 90
Ist der berechnete neue Wert größer als 90, so musst du (beim Verschlüsseln) von ihm 26 abziehen, damit du wieder in den erlaubten Bereich kommst (vorausgesetzt, dass dein pKey > 0 und pKey < 26). Beim Entschlüsseln addierst du 26, falls der errrechnete Wert kleiner als 65 ist.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Aufrufendes Objekt feststellen Java Basics - Anfänger-Themen 9
T Erste Schritte Ende von Wörtern in einer Zeile feststellen? Java Basics - Anfänger-Themen 5
Y Feststellen ob ein Jahr vergangen ist Java Basics - Anfänger-Themen 6
A Feststellen ob Desktop.print("*.pdf") fertig ist Java Basics - Anfänger-Themen 6
P Datentypen Hauefigkeit feststellen Java Basics - Anfänger-Themen 19
E Position erkennen und überlappungen feststellen Java Basics - Anfänger-Themen 4
C Monotonie feststellen Java Basics - Anfänger-Themen 12
N OOP gewinner in einem Spiel feststellen Java Basics - Anfänger-Themen 4
H Eclipse: Programm startet nicht, wie Fehler feststellen? Java Basics - Anfänger-Themen 5
M Obsolete Komponenten feststellen? Java Basics - Anfänger-Themen 3
G Feststellen, was ausgelöst wurde Java Basics - Anfänger-Themen 2
G Feststellen, ob erstes Zeichen eines Strings eine Ziffer ist Java Basics - Anfänger-Themen 11
R Verzeichnis feststellen Java Basics - Anfänger-Themen 14
W Zeilenposition in JTextArea feststellen(ohne Caret) Java Basics - Anfänger-Themen 7
G Länge einer Enumeration feststellen Java Basics - Anfänger-Themen 15
M Feststellen, das Textboxen leer sind! Java Basics - Anfänger-Themen 3
M Text in JInternalFrames - Source feststellen? Java Basics - Anfänger-Themen 6
B Disconnect des Clients feststellen Java Basics - Anfänger-Themen 2
reibi Feststellen ob Datei fertiggeschrieben ist. Java Basics - Anfänger-Themen 12
L feststellen ob args[2] gesetzt ist? Java Basics - Anfänger-Themen 2
G Änderungen in TextFelder feststellen Java Basics - Anfänger-Themen 4
R Integerwerte von enum-Elementen feststellen Java Basics - Anfänger-Themen 2
D zeilenumbruch feststellen Java Basics - Anfänger-Themen 8
T Feststellen wie viel Arbeitsspeicher belegt ist Java Basics - Anfänger-Themen 2
G Vergleichen von Objekten, selektiertes Objekt feststellen Java Basics - Anfänger-Themen 2
H So viele Fehlermeldungen, dass ich nicht weiß wo das Problem ist. Java Basics - Anfänger-Themen 6
mhmt_03 dafür sorgen, dass im JTextfield nur zahlen eingebbar sind Java Basics - Anfänger-Themen 9
M Was habe ich hier falsch, dass wenn ich z.B.: 11 eingebe mir false zurück gegeben wird? Java Basics - Anfänger-Themen 2
W Programm dass Palindrome erkennt Java Basics - Anfänger-Themen 6
B Automatisierung von Jobs / @EJB Scheduler / Verhinderung, dass Queue überläuft Java Basics - Anfänger-Themen 2
Dimax Wie erkennt man dass der gesuchte am Zeilenanfang steht Java Basics - Anfänger-Themen 10
M java.io.FileNotFoundException trotz dass Verzeichnis korrekt angegeben ist! Java Basics - Anfänger-Themen 20
M In Netbeans Programm so abspeichern dass es funktioniert Java Basics - Anfänger-Themen 8
W Wie kann man folgenden Code abändern, dass er den Score mit Zahl anzeigt? Java Basics - Anfänger-Themen 3
X wie kann ich in bluej/java einene 2d array mit zahlen fuellen, so dass sich diese in der der zeilen Java Basics - Anfänger-Themen 2
S Double mithilfe eines Scanners so einlesen, dass ich damit rechnen kann Java Basics - Anfänger-Themen 4
1 2D-Array, dass das pascalsche Dreieck berechnet Java Basics - Anfänger-Themen 2
E Methoden Wie kann ich eine Methode so schreiben, dass Methodenaufruf polymorph erfolgen kann? Java Basics - Anfänger-Themen 8
D 100.0% gleichmäßig aufteilen, so dass Summe 100.0% sind, nicht 99,9% oder 100,1% Java Basics - Anfänger-Themen 3
B Liebesprogramm erstellt aber wie sorg ich dafür, dass es im bildschrim agezeigt wird? Java Basics - Anfänger-Themen 16
S Festlegen, dass Subklasse nicht erlaubt ist? Java Basics - Anfänger-Themen 3
S Abstrakte Klasse, festlegen, dass Methode verändert werden muss. Java Basics - Anfänger-Themen 4
T Vorschreiben, dass Konstruktor überschrieben wird Java Basics - Anfänger-Themen 10
G Warum geht dass nicht? Actionlistener geht nicht. Java Basics - Anfänger-Themen 4
A wie durch klicken regeln dass nächster "case" auge Java Basics - Anfänger-Themen 15
E Vermeiden,dass mehrere Instanzen eines Java-Programms laufen Java Basics - Anfänger-Themen 2
B nach Zeichen suchen dass im string mehrmals vorkommt Java Basics - Anfänger-Themen 3
J Rekursiv muss dass laufen! Java Basics - Anfänger-Themen 11
K Brauche nur Tipps Leute habe keine plan wie ich dass machen Java Basics - Anfänger-Themen 4
T Suche ein array dass dir stets die freien indexe gibt Java Basics - Anfänger-Themen 7
M Java-Software so anbieten, dass sie leicht zu starten ist Java Basics - Anfänger-Themen 16
C Mein Programm rechnet lieber als dass es malt - warum? Java Basics - Anfänger-Themen 10
T Programm so abbrechen, dass finally ausgeführt wird Java Basics - Anfänger-Themen 7
U super-Konstruktor Aufrufen mit Object, dass Exception wirft Java Basics - Anfänger-Themen 2
S Aus verschachtelter ArrayList auf einen Wert zugreifen Java Basics - Anfänger-Themen 4
H Den Wert einer rekursiven Funktion bestimmen Java Basics - Anfänger-Themen 5
J maximaler Wert eines Integers Java Basics - Anfänger-Themen 14
I Format Problem mit Wert - bekomme 0,10 anstatt 10,00 Java Basics - Anfänger-Themen 6
H Methode über String Wert aufrufen Java Basics - Anfänger-Themen 8
G Rekursive Methode liefert augenscheinlich keinen boolean-Wert zurück. Java Basics - Anfänger-Themen 4
Lena_2611 Vergleich von Array1 Index mit Array2 Wert und erzeugen eines neues Arrays Java Basics - Anfänger-Themen 8
NeoLexx Abfrage mit instanceof führt zu unerwarteten Wert Java Basics - Anfänger-Themen 9
B Map<String, FilterMeta, wie Wert bekommen? Java Basics - Anfänger-Themen 4
ms_cikar Den Wert einer Hex. value bestimmten. Java Basics - Anfänger-Themen 8
J Eine Position im String durch einen Integer - Wert teilen Java Basics - Anfänger-Themen 5
S Integer Wert wird nicht übernommen Java Basics - Anfänger-Themen 2
V Boolean Wert nicht richtig erkannt Java Basics - Anfänger-Themen 4
H Datentypen Was für eine Format verbirgt sich hinter dem Integer-Wert 053? Java Basics - Anfänger-Themen 2
1 Array nimmt falschen Wert auf! Java Basics - Anfänger-Themen 2
S Erste Schritte Button einen Wert zuweisen & diesen ausgeben Java Basics - Anfänger-Themen 2
H Größte Duplikat (Größte Doppelte Wert) eines Arrays ausgeben Java Basics - Anfänger-Themen 9
V_Fynn03 Erste Schritte Einen Wert in ein TextField einfügen aus einer anderen Klasse Java Basics - Anfänger-Themen 3
J Wert zwischen JFrames übergeben Java Basics - Anfänger-Themen 2
J Umwandlung String zu ASCII-Wert und anders Java Basics - Anfänger-Themen 17
P Verzweigungen Wert zurück geben Java Basics - Anfänger-Themen 2
D Wert des Arrays unter Bedingungen ändern Java Basics - Anfänger-Themen 1
M Double Wert nach n abschneiden ohne zu runden Java Basics - Anfänger-Themen 1
F Boolean Methode Wert ausgeben. Java Basics - Anfänger-Themen 2
X Erste Schritte boolean wert ändert sich nicht? Java Basics - Anfänger-Themen 6
T Klassen Den Wert aus Array lesen lassen Java Basics - Anfänger-Themen 12
W Problem mit dem Wert von boolean-Variable Java Basics - Anfänger-Themen 3
J Wie kann ich z.B. einem int-Wert einen String-Wert zuweisen? Java Basics - Anfänger-Themen 2
H Einfache Frage zur Punktnotation objektname.methode(wert) Java Basics - Anfänger-Themen 2
D integer negativen Wert abspeichern Java Basics - Anfänger-Themen 3
L Wert einer Webeseiteauslesen Java Basics - Anfänger-Themen 6
D Erste Schritte Wert im Array suchen Java Basics - Anfänger-Themen 12
O Primzahl rekursiv mit einem Wert ohne i, wie? Java Basics - Anfänger-Themen 6
S Wert innerhalb eines anderen Wertes Java Basics - Anfänger-Themen 3
S Array doppelter Wert prüfen Java Basics - Anfänger-Themen 7
O Wert in einer Schleife unterschiedlich erhöhen Java Basics - Anfänger-Themen 2
B ArrayList besitzt einen Wert zu wenig Java Basics - Anfänger-Themen 16
D Compiler-Fehler Wert auf Datenbank übertragen und Sleep Thread Java Basics - Anfänger-Themen 3
F Java int-Wert wird resetet Java Basics - Anfänger-Themen 21
J Erste Schritte Wert aus JTextField zurückgeben Java Basics - Anfänger-Themen 6
UnknownInnocent Bestimmten Integer Wert aus Array filtern Java Basics - Anfänger-Themen 2
B Liste von Integer -> Nächster Wert bekommen Java Basics - Anfänger-Themen 5
J Wert bei Objekterzeugung verändern Java Basics - Anfänger-Themen 12
I bestimmten Wert eines Arrays Java Basics - Anfänger-Themen 23
D Erste Schritte Java speichert wert des Scanners nicht Java Basics - Anfänger-Themen 2
B Erste Schritte if Anweisung mit Wert Übernahme Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Anzeige

Neue Themen


Oben