Vigenere und Caesar in verschiedenen Alphabeten

Crowdie

Mitglied
Hallo Leute!

Ich habe die Verschlüsselungsmethoden Vigenere und Caesar programmiert.
Diese geben aber beim entschlüsseln gewollt dann einen in nur Großbuchstaben konvertierten Text zurück.

Dabei habe ich jetzt die Frage, wie ich denn andere Alphabete verwenden kann wie z.B. nur klein Buchstaben oder Hexa Dezimal usw.

Hier meine Methoden:

Vigenere:

Java:
@Override
    public String encrypt(String orginal, Key k)
    {
    VigenereKey vK = (VigenereKey)k;
    String schluessel = vK.getKey();
    String geheim="";
    String text=orginal.toUpperCase();
    String key=schluessel.toUpperCase();
    int y=0;
    for (int i=0; i<text.length(); i++) {
         if (y==key.length()) y-=key.length();
         int a = (((int) key.charAt(y))+((int) text.charAt(i))-100);
         if (a>90) a-=26;
         geheim+=(char)a;
         y++;
    }
    return geheim;
    }
    
    @Override
    public String decrypt(String orginal, Key k)
    {
    VigenereKey vK = (VigenereKey)k;
    String schluessel = vK.getKey();
    String klartext="";
    String text=orginal.toUpperCase();
    String key=schluessel.toUpperCase();
    int y=0;
    for (int i=0; i<text.length(); i++) {
         if (y==key.length()) y-=key.length();
         int a = (((int) text.charAt(i))-((int) key.charAt(y))+100);
         if (a<65) a+=26;
         klartext+=(char)a;
         y++;
    }
    return klartext;
    }

Caesar:

Java:
public String encode(String s){
        return encode(s, verschiebung);
    }
    
    public String decode(String s){
        return encode(s, 26-verschiebung);
    }
    
    private String encode(String s, int verschiebung){
        s = s.toUpperCase();
        char[] chars = s.toCharArray();
        for(int i = 0; i < s.length(); i++)
            chars[i] = encode(chars[i], verschiebung);
        return String.valueOf(chars);
    }

    private char encode(char c, int verschiebung){
        if(c >= 'A' && c <= 'Z')
            return (char)((c-'A'+verschiebung)%26 + 'A');
        else
            return c;
    }
    
    private int wieOftChar(String s, char c){
        int times = 0;
        for(int i = 0; i < s.length(); i++)
            if(s.charAt(i) == c)
                times++;
        return times;
    }
    
    public String decrypt(String original, Key s) {
        CaesarKey key = (CaesarKey)s;
        int schluessel = key.getKey();
        String geheimText = ""; 
        int a; 
        original = original.toUpperCase();
        for(int i=0; i<original.length(); i++){
         a=(int) original.charAt(i);
         if(a ==' '); else a-=schluessel; 
         if(a<65) a+=26; 
         geheimText += (char) a;
        }
        return geheimText;
    }
    
    public String encrypt(String original, Key s) {
        CaesarKey key = (CaesarKey)s;
        int schluessel = key.getKey();
        String geheimText = ""; 
        int a; 
        original = original.toUpperCase();
        for (int i=0; i<original.length(); i++){
            a=(int) original.charAt(i);
            if(a==' '); else a+=schluessel; 
            if(a>90) a-=26; 
         geheimText += (char) a;
        }
        return geheimText;
    }

Vielen Dank! :)
 

JavaMeister

Gesperrter Benutzer
1. Google nach solchen implementierungen.

Wie der Name schon sagt, hat bereits Cäsar sowas gemacht. Du bist also nicht der erste.

2. Momentan benutz Du Ascii.Tabelle genau so könntest Du deine eigene vorgeben und darauf arbeiten.

Siehe auch Punkt 1) dazu.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Vigenere Chiffre Programmierung Allgemeine Java-Themen 5
K Vigenere- Verschlüsselung Allgemeine Java-Themen 13
T Programm Vigenere Verfahren Allgemeine Java-Themen 14
M Caesar-Verschiebung: IndexOutOfBoundsException bei Verschiebung > array.length Allgemeine Java-Themen 2
K Caesar Chiffre Bruteforce Allgemeine Java-Themen 8
D Caesar und Vigenère Verschlüsselung Allgemeine Java-Themen 2
Master3000 Dateien zwischen verschiedenen Netzwerken senden Allgemeine Java-Themen 17
Drachenbauer Wie muss ein Konstructor aussehen, um dinge mit verschiedenen Zusätzen in den "<>" anzunehmen? Allgemeine Java-Themen 1
M Wie kann man eine void Methode mit Variablen von zwei verschiedenen Objekten ausführen? Allgemeine Java-Themen 15
A Classpath Library in verschiedenen Projekten Allgemeine Java-Themen 2
S Spielfeld aus verschiedenen Kacheln Allgemeine Java-Themen 35
U Variablen Stringarrays mit wenig verschiedenen Zeichen effizienter speichern Allgemeine Java-Themen 10
M ArrayList mit verschiedenen Datentypen in String konvertieren Allgemeine Java-Themen 10
M Null byte in verschiedenen charsets Allgemeine Java-Themen 2
M Testen von verschiedenen Produktversionen Allgemeine Java-Themen 3
A Threads Lock über mehrere Abschnitte in verschiedenen Methoden Allgemeine Java-Themen 5
T Datentypen Eine Liste - verschiedenen Klassen - eine Abstracte Klasse Allgemeine Java-Themen 3
P Objekt mit verschiedenen Datentypen Allgemeine Java-Themen 5
P Anzahl vo Einträgen in verschiedenen Sets Allgemeine Java-Themen 3
R Input/Output Dateizugriff aus verschiedenen Tools Allgemeine Java-Themen 3
J Druckprobleme bei verschiedenen Schriftarten/-größen Allgemeine Java-Themen 7
B File Seperator unter verschiedenen OS Allgemeine Java-Themen 2
G Gleiche Packages in verschiedenen JAR Dateien - Welches Package wird verwendet? Allgemeine Java-Themen 5
K Programm mit verschiedenen Parametern starten Allgemeine Java-Themen 2
E Outputstream an verschiedenen Positionen beschreiben Allgemeine Java-Themen 4
N Dateizugriff in verschiedenen Ordnern Allgemeine Java-Themen 2
S Fragen zu verschiedenen Themen vom JCreator Allgemeine Java-Themen 2
S Frage zu verschiedenen Java Projekten Allgemeine Java-Themen 6
D Logger mit verschiedenen Ausgabezielen Allgemeine Java-Themen 2
H2SO3- sichtbarkeit in verschiedenen paketen Allgemeine Java-Themen 2
R Kann ich die jars eines Applets auf verschiedenen Domains hosten? Allgemeine Java-Themen 2
T DataFrame (Matrix mit mit verschiedenen Typen pro Spalte) Allgemeine Java-Themen 4
R Aktuelle Kompatibilitätsliste für JRE auf verschiedenen OS´s Allgemeine Java-Themen 2
MQue Methoden in verschiedenen Klassen aufrufen Allgemeine Java-Themen 21
MQue JButton an verschiedenen Variablen Allgemeine Java-Themen 2
J parsen von verschiedenen dokument typen Allgemeine Java-Themen 3
D generischer Iterator mit verschiedenen Typen Allgemeine Java-Themen 3
S Arrayelemente in verschiedenen Variationen zurückgeben Allgemeine Java-Themen 12
T Herunterfahren oder Neustarten der verschiedenen OS Allgemeine Java-Themen 11
C Sichbarkeit von Objekten / Methoden in verschiedenen Files Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben