Methoden Cäsar-Verschlüsselung

auroNpls

Mitglied
Hallo liebe Leute,

ich versuche mich an einer verschluesseln-Methode für die Cäsar-Verschlüsselung:
Mein bisheriger Code:
Java:
String verschluesseln(String s) {
            StringBuffer verschluessel = new StringBuffer();
            for(int i = 0; i < s.length(); i++) {
                    char cur = s.charAt(i);
                    if(cur > 64 && cur < 91 || cur > 96 && cur < 123) {
                        cur = (char) (cur + 1);
                        verschluessel.append(cur);
                    }
            }
            return verschluessel.toString();

Hier ist das Problem, dass ich solche Sachen wie Leerzeichen bzw. Sonderzeichen in einem String überspringen möchte. Das heißt, bspw. für den String "Hallo liebe Leute!" mit der Verschiebung um eins nach rechts, hätte ich gerne die Ausgabe: "Ibmmp mjfcf Mfvuf!". Wie bekomme ich das hin, dass Sonderzeichen übersprungen werden und nur die Klein- bzw. Großbuchstaben um einen bestimmten Wert verschoben werden?

EDIT: Meine Methode tut ja die Sonderzeichen überspringen, jedoch wenn ich es mit der .append-Methode zusammenfüge, erhalte ich ja einen zusammengesetzen String ohne Leerzeichen bzw. Sonderzeichen. Würde dies mit regulären Ausdrücken funktionieren?

Liebe Grüße
 

auroNpls

Mitglied
Hast Du doch schon. Ansonsten hilft die Else...
Ja, aber das Problem ist, dass ich dann in meiner Übergabe keine Sonderzeichen mehr habe.
Mit dem Else ist die Problematik folgende, ich müsste ja dann jedes Sonderzeichen einzeln abdecken. Im Sinne von if(cur == '!' || cur == '?'...) und hier würde ja dann nur noch eine switch Anweisung Sinn machen. Jedoch frage ich mich, ob es eine einfachere Variante gibt, auf die ich gerade nicht komme.
 

Blender3D

Top Contributor
Java:
static String entschluesseln(String s) {
        StringBuffer str = new StringBuffer();
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            if (!Character.isSpaceChar(c))
                c = (char) (c - 1);
            str.append(c);
        }
        return str.toString();
    }

    static String verschluesseln(String s) {
        StringBuffer str = new StringBuffer();
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            if (!Character.isSpaceChar(c) && (Character.isAlphabetic(c) || Character.isDigit(c)))
                c = (char) (c + 1);
            str.append(c);
        }
        return str.toString();
    }
Probiere das aus. ;)
 

auroNpls

Mitglied
Java:
static String entschluesseln(String s) {
        StringBuffer str = new StringBuffer();
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            if (!Character.isSpaceChar(c))
                c = (char) (c - 1);
            str.append(c);
        }
        return str.toString();
    }

    static String verschluesseln(String s) {
        StringBuffer str = new StringBuffer();
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            if (!Character.isSpaceChar(c) && (Character.isAlphabetic(c) || Character.isDigit(c)))
                c = (char) (c + 1);
            str.append(c);
        }
        return str.toString();
    }
Probiere das aus. ;)

Hab dies so ausprobiert, jedoch ist die Rückgabe erneut ohne Leerzeichen bzw. Sonderzeichen. Oder sehe ich da irgendetwas falsch? Ich erhalte dann für z.B. "Hallo liebe Leute!" -> "IbmmpmjfcfMfvf"
 

Blender3D

Top Contributor
Oder sehe ich da irgendetwas falsch?
Verwendest Du auch dir richtige Verschlüsselung ?
Java:
static String verschluesseln(String s) {
         StringBuffer str = new StringBuffer();
         for (int i = 0; i < s.length(); i++) {
             char c = s.charAt(i);
             if (!Character.isSpaceChar(c) && (Character.isAlphabetic(c) || Character.isDigit(c)))
                 c = (char) (c + 1);
             str.append(c);
         }
         return str.toString();
     }
 

auroNpls

Mitglied
Verwendest Du auch dir richtige Verschlüsselung ?
Java:
static String verschluesseln(String s) {
         StringBuffer str = new StringBuffer();
         for (int i = 0; i < s.length(); i++) {
             char c = s.charAt(i);
             if (!Character.isSpaceChar(c) && (Character.isAlphabetic(c) || Character.isDigit(c)))
                 c = (char) (c + 1);
             str.append(c);
         }
         return str.toString();
     }
mihe 7 hatte Recht, str.append(c) hätte nach der if-Bedingung kommen müssen.
Jedoch ist noch ein kleiner Fehler in der entschluesseln-Methode. Hier werden komischerweise die Sonderzeichen mit entschlüsselt. Wie kann ich das vermeiden? Also bei der Verschlüsselung klappt alles soweit, der String wird richtig verschlüsselt und ich erhalte auch einen richtigen verschlüsselten String, bspw. "Hallo liebe Leute!" -> "Ibmmp mjfcf Mfvuf!". Beim Entschlüsseln jedoch wird aus "Ibmmp mjfcf Mfvuf!" -> "Hallo liebe Leute [SP]".
 

fhoffmann

Top Contributor
Du hast grundsätzlich ein Problem, wenn du nur einen Teil der Zeichen verschlüsselst:
Beispielsweise wird 'Z' (Code 90) zu 91 verschlüsselt; dagegen bleibt '[' (Code 91) bei 91.
Beim Entschlüsseln hast keine Möglichkeit mehr zu entscheiden, wie die 91 entstanden ist.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
U Cäsar Verschlüsselung Java Basics - Anfänger-Themen 8
Ä Cäsar-Verschlüsselung Java Basics - Anfänger-Themen 5
Z Cäsar-Verschlüsselung Java Basics - Anfänger-Themen 1
H Cäsar-Verschlüsselung Java Basics - Anfänger-Themen 1
R Frage zu Cäsar - Verschlüsselung! Java Basics - Anfänger-Themen 10
J Cäsar Verschlüsselung Java Basics - Anfänger-Themen 12
K Cäsar-Verschlüsselung Java Basics - Anfänger-Themen 1
A Cäsar-Veschlüsselung Java Basics - Anfänger-Themen 33
H Cäsar chiffrierung ohne if-Anweisung Java Basics - Anfänger-Themen 5
F Cäsar-Code Java Basics - Anfänger-Themen 9
G Ist die Cäsar Verschlüsseling implementiert ? Java Basics - Anfänger-Themen 6
Camoflasche RSA Verschlüsselung Java Basics - Anfänger-Themen 0
J RSA Verschlüsselung Testen / byte[] in Objekt umwandeln Java Basics - Anfänger-Themen 1
M Verschlüsselung mit replace() Java Basics - Anfänger-Themen 35
P Cäsear verschlüsselung irgendwas passt noch nicht Java Basics - Anfänger-Themen 2
E Einfache Java Verschlüsselung Java Basics - Anfänger-Themen 4
N Erste Schritte JFrame Caesar-Verschlüsselung Java Basics - Anfänger-Themen 23
Y Caesar Verschlüsselung Fehler Java Basics - Anfänger-Themen 4
N Caesar Verschlüsselung Java Basics - Anfänger-Themen 2
L Interpreter-Fehler RSA Verschlüsselung Fehler Java Basics - Anfänger-Themen 2
M Erste Schritte Verschlüsselung von text Java Basics - Anfänger-Themen 21
M Erste Schritte Verschlüsselung / Login-Sicherheit Java Basics - Anfänger-Themen 8
D Eine einfache Verschlüsselung schreiben Java Basics - Anfänger-Themen 3
A Vigenere Verschlüsselung Java Basics - Anfänger-Themen 2
B RSA Verschlüsselung für Aktivierunscode Java Basics - Anfänger-Themen 7
T Array Verschlüsselung Java Basics - Anfänger-Themen 5
V Permutation, Verschlüsselung Java Basics - Anfänger-Themen 19
S Caesar Verschlüsselung Start Hilfe Java Basics - Anfänger-Themen 4
K Symmetrische Verschlüsselung von TextArea Java Basics - Anfänger-Themen 7
U Problem mit Verschlüsselung Java Basics - Anfänger-Themen 2
C Frage zu RSA-Verschlüsselung Java Basics - Anfänger-Themen 3
Y Applet: Verschlüsselung Java Basics - Anfänger-Themen 3
H Caesar-Verschlüsselung - Was stimmt nicht? Java Basics - Anfänger-Themen 6
V Ceasar Verschlüsselung Java Basics - Anfänger-Themen 9
D Verschlüsselung mit Java Java Basics - Anfänger-Themen 8
F Problem: Verschlüsselung von String in Array Fehler Java Basics - Anfänger-Themen 2
C Verschlüsselung Java Basics - Anfänger-Themen 8
I Rc4 Verschlüsselung in BlueJ Java Basics - Anfänger-Themen 18
D Verschlüsselung Java Basics - Anfänger-Themen 4
C Compiler-Fehler Verschlüsselung Java Basics - Anfänger-Themen 2
B byte-weise Verschlüsselung Java Basics - Anfänger-Themen 6
S Caesar-Verschlüsselung Problem/Frage Java Basics - Anfänger-Themen 4
D Java Password verschlüsselung Java Basics - Anfänger-Themen 6
P RSA Verschlüsselung kleines Problem Java Basics - Anfänger-Themen 5
R Verschlüsselung von String Java Basics - Anfänger-Themen 4
G Verschlüsselung und Entschlüsselung von Texten Java Basics - Anfänger-Themen 7
D Java Verschlüsselung Java Basics - Anfänger-Themen 8
O Verschlüsselung mit Cipher & Key Java Basics - Anfänger-Themen 9
A Vigenere Verschlüsselung Java Basics - Anfänger-Themen 2
S Hill Verschlüsselung Java Basics - Anfänger-Themen 10
A Einfache java Verschlüsselung HILFE Java Basics - Anfänger-Themen 3
W Xor-Verschlüsselung Java Basics - Anfänger-Themen 15
Y verschlüsselung Java Basics - Anfänger-Themen 10
T Frage zur Verschlüsselung (RSA) Java Basics - Anfänger-Themen 6
A Java Verschlüsselung/Cipher Java Basics - Anfänger-Themen 12
S Verschlüsselung Key Splitting Java Basics - Anfänger-Themen 2
B Again, Verschlüsselung Java Basics - Anfänger-Themen 3
M Caeser Verschlüsselung ganz einfach(nicht für mich) Java Basics - Anfänger-Themen 6
L Frage zur Verschlüsselung in java Java Basics - Anfänger-Themen 3
D Verschlüsselung Java Basics - Anfänger-Themen 4
A verschlüsselung Java Basics - Anfänger-Themen 7
G Vergleich bei MD5-Verschlüsselung Java Basics - Anfänger-Themen 3
zilti md5-Verschlüsselung? Java Basics - Anfänger-Themen 7
L Caesar-Verschlüsselung programmieren Java Basics - Anfänger-Themen 12
Lazybone Vigenere Verschlüsselung funktioniert nicht richtig Java Basics - Anfänger-Themen 8
S XOR-Verschlüsselung Java Basics - Anfänger-Themen 5
U "Einfache Verschlüsselung" Java Basics - Anfänger-Themen 17
K Verschlüsselung Java Basics - Anfänger-Themen 8
E Verschlüsselung mithilfe von Array Java Basics - Anfänger-Themen 2
S SHA? Hashcodes, Blowfish Verschlüsselung Java Basics - Anfänger-Themen 7
L Java und PGP Verschlüsselung, wie...??? Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben