Java :: Aufgabe #34 :: Lösung #2

6 Lösungen Lösungen öffentlich
#34

Mit Caesar Chiffre ent- und verschlüsseln

Anfänger - Java von Dome - 03.01.2013 um 01:30 Uhr
Schreiben Sie ein Programm, indem Sie mit Hilfe der Caesar Chiffre einen beliebigen Text ent- und verschlüsseln können. Zuvor muss der Text und die Anzahl der Verschiebung angegeben werden. Groß- und Kleinschreibung muss nicht beachtet werden.

Konsolenausgabe:

Geben Sie den Text ein: Beispielwort
Um wie viele Stellen soll verschoben werden: 1
Ergebnis: Cfjtqjfmxpsu
#2
vote_ok
von Bufkin (1410 Punkte) - 13.09.2017 um 11:48 Uhr
Entschlüsseln funktioniert im Moment nur mit kleinen Buchstaben und das richtige Wort muss aus eine Liste herausgesucht werden.

Quellcode ausblenden Java-Code
import java.util.ArrayList;
import java.io.*;

class caesar
{
    static String alphabetVerschlüsseln = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
    static String alphabetEntschlüsseln = "abcdefghijklmnopqrstuvwxyz";
    
    public static String verschlüsseln(int verschiebung, String text) 
    {
        int index = 0;
        String ausgabe = "";
        
        for(int i = 0; i < text.length(); i++)
        {
            index = alphabetVerschlüsseln.indexOf(text.charAt(i));
            ausgabe = ausgabe.concat(String.valueOf(alphabetVerschlüsseln.charAt(index + verschiebung)));
        }
        
        return ausgabe;
    }
    
    public static String entschlüsseln(String text)
    {
        String ausgabe = "";
        int index = 0;
        int verschiebung = 0;
        ArrayList<String> ausgabeArray = new ArrayList<String>();
        
        for(int i = 0; i < 26; i++)
        {
            for(int j = 0; j < text.length(); j++)
            {
                index = alphabetEntschlüsseln.indexOf(text.charAt(j));
                if((index + i) > 25)
                {
                    verschiebung = index + i - 26;
                } else {
                    verschiebung = index + i;
                }
                ausgabe = ausgabe.concat(String.valueOf(alphabetEntschlüsseln.charAt(verschiebung)));
            }
            ausgabeArray.add(ausgabe);
            System.out.println(ausgabeArray.get(i));
            ausgabe = "";
        }
        return ausgabeArray.toString();
    }
    
    public static void main (String[] args) throws java.lang.Exception
    {
        String StrVerschlüsseln = "Beispielwort";
        String StrEntschlüsseln = "qtxhextaldgi";
        System.out.println(StrVerschlüsseln + " verschlüsselt ist:\n"  + verschlüsseln(1, StrVerschlüsseln) + "\n");
        System.out.println("Alle möglichen Verschiebungen von " + StrEntschlüsseln + ":\n");
        entschlüsseln(StrEntschlüsseln);
    }
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben