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
2090853

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.