Caesar und Vigenère Verschlüsselung

Status
Nicht offen für weitere Antworten.
D

DenTureS

Gast
Hallo liebe User,

ich habe zur Zeit ein Softwareprojekt an unserer Schule zu laufen und wollte ein Programm in Java schreiben, welches mir ermöglicht einen Klartext durch Caesar und Vigenère zu kodieren und dekodieren zu können.

Ich habe schon 2 Choice eingebaut. Einen man zwischen Caesar und Vigenère auswählen kann und einen wo man auswählt ob man den Klartext kodieren oder dekodieren möchte.

Habe dann noch nen paar Buttons für Löschen und Starten und noch ein paar Text Areas für den Key, den Klar- und Geheimtext.


So nun zu meiner eigentlichen Frage. Also meine Caesar Verschlüsselung funktioniert, allerdings bekomm ich die Vigenère nicht wirklich hin. :( Immer wenn ich den Key eingebe und den Klartext kodieren, bzw. dekodieren will, bleibt die Text Area mit dem Geheimtext leer =/

Ich gebe euch mal meinen Quelltext zu dem Programm. Könntet Ihr euch mal den Teil zu Vigenère angucken und mir dabei helfen, dass man den Klartext verschlüsseln und entschlüsseln kann?

Code:
import java.awt.*;
import java.awt.event.*;

public class Verschlüsselung
{
  public static void main (String args[])
  {
    WindowSpielerei F = new WindowSpielerei ("Paul");
    F.setVisible(true);
  }
}

class WindowSpielerei extends Frame
{
  Panel p1 = new Panel ();
  Button b1 = new Button ("!! Starten !!");
  Button b2 = new Button ("!! Löschen !!");
  Label l1 = new Label ("Kryptoprogramm");
  Label l2 = new Label ("Key:");
  Label l3 = new Label ("Klartext:");
  Label l4 = new Label ("Geheimtext:");
  Label l5 = new Label ();
  TextField t1 = new TextField (50);
  TextField t2 = new TextField (50);
  TextField t3 = new TextField (10);
  Choice c1 = new Choice();
  Choice c2 = new Choice();
  int n=10;

  public WindowSpielerei (String T)
  {
      this.setTitle(T);
      this.setSize(800,600);
      
      this.addWindowListener(new WindowAdapter()
         {
            public void windowClosing(WindowEvent e)               //alles nur zum schließen des fensters
           {
             System.exit(0);
           }
         });

      setBackground(Color.black);

      add(p1);

      l1.setForeground(Color.red);
      add(l1);
      l1.setBounds(350,40,100,25);
      
      l2.setForeground(Color.red);
      add(l2);
      l2.setBounds(50,200,50,25);
      
      add(t1);
      t1.setBounds(120,200,50,25);

      c1.setBackground(Color.red);
      add(c1);
      c1.addItem("Caesar-Verschlüsselung");
      c1.addItem("Viregené-Verschlüsselung");
      c1.setBounds(50,130,175,25);
      
      c2.setBackground(Color.red);
      add(c2);
      c2.addItem("Kodierung");
      c2.addItem("Dekodierung");
      c2.setBounds(250,130,175,25);

      add(t2);
      t2.setBounds(275,275,250,25);
      
      add(t3);
      t3.setBounds(275,450,250,25);
      
      l3.setForeground(Color.red);
      add(l3);
      l3.setBounds(175,275,75,25);
      
      l4.setForeground(Color.red);
      add(l4);
      l4.setBounds(175,450,75,25);
      
      b1.setBackground(Color.black);
      b1.setForeground(Color.red);
      add(b1);
      b1.setBounds(275,363,250,25);
      
      b2.setBackground(Color.black);
      b2.setForeground(Color.red);
      add(b2);
      b2.setBounds(550,363,150,25);


      add(l5);
      
      
      
       b1.addActionListener(new ActionListener()
       {
         public void actionPerformed(ActionEvent e)
         {
              String a = t2.getText();
              String klartext = t2.getText();
              String key =t1.getText();
              int n = Integer.parseInt(t1.getText());
              int b;
              int i;
              String Str="";
              int keyas;
              int wahl = c1.getSelectedIndex();
              switch (wahl)
              {
                case 0:
                {
                  int wahl2 = c2.getSelectedIndex();

                  switch (wahl2)
                  {
                    case 0:
                    {
                         for (int x=0; x< a.length(); x++)
                          {
                                  b = a.charAt(x);
                                  int geheimtext = (((b + n)-32) % 91)+32;
                                  Str = Str+(char)geheimtext;


                          }
                                  t3.setText(Str);
                    }break;//kodieren

                    default:
                    {
                          for (int x=0; x< a.length(); x++)
                          {
                                  b = a.charAt(x);
                                  int geheimtext = (((b - n)-32) % 91)+32;
                                  Str = Str+(char)geheimtext;


                          }
                                  t3.setText(Str);
                    }break;//dekodieren
                  }
                } break;//caesar
                
                default:
                {
                  int wahl2 = c2.getSelectedIndex();
                  
                  switch (wahl2)
                  {
                    case 0:
                    {
                      for ( i=0, keyas=0; i< klartext.length(); i++, keyas++)
                              {

                                if( keyas == key.length()) keyas = 0;
                                int geheimtext = (char)((((klartext.charAt(i)+ key.charAt(keyas))-32)%90)+32);
                                Str = Str+(char)geheimtext;

                              }
                              t3.setText(Str);
                    }break;//kodieren
                    
                    default:
                    {
                      for ( i=0, keyas=0; i< klartext.length(); i++, keyas++)
                              {

                                if( keyas == key.length()) keyas = 0;
                                int geheimtext = (char)((((klartext.charAt(i)- key.charAt(keyas))-32)%90)+32);
                                Str = Str+(char)geheimtext;

                              }
                              t3.setText(Str);
                    }break;//dekodieren
                  }
                } break;//virgené
              }
         }
       });


      b2.addActionListener(new ActionListener()
     {
        public void actionPerformed(ActionEvent e)
       {
         t3.setText("");
         t2.setText("");
       }
     });
       
  }
}

Ich hoffe Ihr könnt mir weiter helfen.

Liebe Grüße aus Meck Pomm,

DenTureS
 
S

SlaterB

Gast
Tipp: baue erstmal ein Konsolen Programm ohne Gui (-> minus 100 Zeilen auf nur noch 100)
sowie ohne Caesar (-> minus 50 Zeilen auf nur noch 50)


wenn du dann ein einfaches sauberes Testprogramm mit einem vorgegeben Beispiel-Text hast, den man nicht eintippen muss,
dann kann man langsam über das Problem nachdenken ;)
 

Saxony

Top Contributor
SlaterB hat gesagt.:
Tipp: baue erstmal ein Konsolen Programm ohne Gui (-> minus 100 Zeilen auf nur noch 100)
sowie ohne Caesar (-> minus 50 Zeilen auf nur noch 50)


wenn du dann ein einfaches sauberes Testprogramm mit einem vorgegeben Beispiel-Text hast, den man nicht eintippen muss,
dann kann man langsam über das Problem nachdenken ;)

Also ein KSKB :)

bye Saxony
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Vigenere und Caesar in verschiedenen Alphabeten Allgemeine Java-Themen 1
M Caesar-Verschiebung: IndexOutOfBoundsException bei Verschiebung > array.length Allgemeine Java-Themen 2
K Caesar Chiffre Bruteforce Allgemeine Java-Themen 8
M pfx-Zertifikat in Tomcat für SSL-Verschlüsselung nutzen Allgemeine Java-Themen 14
X Verschlüsselung Allgemeine Java-Themen 18
P String-Verschlüsselung - Frage zur Sicherheit Allgemeine Java-Themen 21
R Verschlüsselung falsch Allgemeine Java-Themen 3
R Verschlüsselung funktioniert nicht Allgemeine Java-Themen 5
J Passwort Verschlüsselung hash Allgemeine Java-Themen 2
D AES Verschlüsselung / Wirklich AES 128-Bit? Allgemeine Java-Themen 4
I Best Practice Verschlüsselung mit SALT Allgemeine Java-Themen 4
A Mehrfache XOR Verschlüsselung Allgemeine Java-Themen 11
Thallius Moderne sichere synchrone Verschlüsselung mit Java? Allgemeine Java-Themen 3
Ananaskirsche Verschlüsselung mit AES Allgemeine Java-Themen 4
E Verschlüsselung Allgemeine Java-Themen 4
F Schlüsselworte RSA Verschlüsselung implementieren Allgemeine Java-Themen 5
S Key (für AES-Verschlüsselung) aus String Allgemeine Java-Themen 4
M Serialisierung & Verschlüsselung Allgemeine Java-Themen 2
K Problem mit Salted - Verschlüsselung Allgemeine Java-Themen 4
Z Java E-Mail Client mit End-to-End-Verschlüsselung Allgemeine Java-Themen 4
J Verschlüsselung von Text? Allgemeine Java-Themen 2
K Vigenere- Verschlüsselung Allgemeine Java-Themen 13
M Verschlüsselung von Text und Files durch RSA (Encoding Problem) Allgemeine Java-Themen 7
T AES-Verschlüsselung mit eigenem 256 Bit Schlüssel Allgemeine Java-Themen 12
DStrohma Verschlüsselung: SALT aus Passwort generieren? Allgemeine Java-Themen 3
G AES Verschlüsselung nur bis 63 Zeichen Länge Allgemeine Java-Themen 2
M Verschlüsselung mit Cipher Allgemeine Java-Themen 5
B XOR Verschlüsselung Allgemeine Java-Themen 7
S Framework für symetrische und asymetrische Verschlüsselung Allgemeine Java-Themen 3
lumo Verschlüsselung Allgemeine Java-Themen 2
H Verschlüsselung mit Blowfish Allgemeine Java-Themen 14
C Interpreter-Fehler AES verschlüsselung mit MD5 key Allgemeine Java-Themen 6
S AES Verschlüsselung - File Headers korrupt Allgemeine Java-Themen 10
A Datei, UTF-8, NTRU-Verschlüsselung Allgemeine Java-Themen 3
B "Verschlüsselung" mit Passwort (XOR bzw. Modulo) Allgemeine Java-Themen 7
B String Verschlüsselung Allgemeine Java-Themen 6
M Verschlüsselung anwenden Allgemeine Java-Themen 6
J Verschlüsselung Allgemeine Java-Themen 22
T MD5 Verschlüsselung Nullen fehlen? Allgemeine Java-Themen 2
L [Exception] RSA Verschlüsselung. Allgemeine Java-Themen 16
C javamail signatur und verschlüsselung Allgemeine Java-Themen 2
R 128 Bit Verschlüsselung/Entschlüsselung in Java? Allgemeine Java-Themen 6
F RSA-Verschlüsselung Allgemeine Java-Themen 4
S Verschlüsselung in Java Allgemeine Java-Themen 2
G Interessant! Verschlüsselung in Java, Charset in der JVM? Allgemeine Java-Themen 14
D Eigener Key bei AES Verschlüsselung Allgemeine Java-Themen 4
T Verschlüsselung von Dateien Allgemeine Java-Themen 8
S Verschlüsselung - IllegalBlockSizeException Allgemeine Java-Themen 3
G Problem mit RSA Verschlüsselung bei .net und Java Allgemeine Java-Themen 1
alexpetri Verschlüsselung Allgemeine Java-Themen 13
@ [Sicherheit] Speicherung von Keys für Verschlüsselung Allgemeine Java-Themen 4
P Verschlüsselung in PHP -> Entschlüsselung in Java Allgemeine Java-Themen 2
Lazybone Caeser Verschlüsselung Allgemeine Java-Themen 6
S Verschlüsselung mit Cipher Allgemeine Java-Themen 8
S Verschlüsselung Allgemeine Java-Themen 15
J Problem mit Dateien/XOR-Verschlüsselung Allgemeine Java-Themen 5
G RSA-Verschlüsselung Allgemeine Java-Themen 1
P HMACMD5- Verschlüsselung entschlüsseln Allgemeine Java-Themen 2
I Verschlüsselung mit Pwd. - User soll Algorithmus wählen Allgemeine Java-Themen 4
J Probleme bei XOR verschlüsselung ! Allgemeine Java-Themen 5
G Verschlüsselung in Java Allgemeine Java-Themen 9
M RSA Verschlüsselung Allgemeine Java-Themen 7
J Verschlüsselung von Daten Allgemeine Java-Themen 21

Ähnliche Java Themen

Neue Themen


Oben