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

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
#3
vote_ok
von Bufkin (1410 Punkte) - 15.09.2017 um 08:29 Uhr
Version 2
- Entschlüsselung mit Großbuchstaben eingebaut

Quellcode ausblenden Java-Code
import java.util.ArrayList;
import java.lang.Character;

class caesar
{
    
    final static String alphabetBeides = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
    final static String alphabetGross = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    final static String alphabetKlein = "abcdefghijklmnopqrstuvwxyz";
    static String alphabet = "";
    
    public static String verschlüsseln(int verschiebung, String text) 
    {
        int index = 0;
        String ausgabe = "";
        
        for(int i = 0; i < text.length(); i++)
        {
            index = alphabetBeides.indexOf(text.charAt(i));
            ausgabe = ausgabe.concat(String.valueOf(alphabetBeides.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++)
            {
                if(text.charAt(j) == Character.toLowerCase(text.charAt(j)))
                {
                    alphabet = alphabetKlein;
                    index = alphabetKlein.indexOf(text.charAt(j));
                } else {
                    alphabet = alphabetGross;
                    index = alphabetGross.indexOf(text.charAt(j));
                }
                
                if((index + i) > 25)
                    {
                        verschiebung = index + i - 26;
                    } else {
                        verschiebung = index + i;
                    }

                    ausgabe = ausgabe.concat(String.valueOf(alphabet.charAt(verschiebung)));
            }
            ausgabeArray.add(ausgabe);
            System.out.println(i + ": " + ausgabeArray.get(i));
            ausgabe = "";
        }
        return ausgabeArray.toString();
    }
    
    public static void main (String[] args) throws java.lang.Exception
    {
        String StrVerschlüsseln = "Beispielwort";
        String StrEntschlüsseln = "Cfjtqjfmxpsu";
        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
2090843

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.