Code verändern

Status
Nicht offen für weitere Antworten.

Mellowtrax

Mitglied
Hallo ihr lieben

Ich hab mal wieder ne Frage:

Ich hab folgenden Code:

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

public class Frame2 extends Frame 


{
    private Button button1 = new Button( "Verschlüsseln");
    private Button button2 = new Button( "Entschlüsseln");
    private Button button3 = new Button( "Schliessen");
    private Button button4 = new Button( "Clear all");
    private TextArea ta1 = new TextArea("", 5, 25, Scrollbar.VERTICAL); //verschlüsseln
    private TextArea ta2 = new TextArea("", 5, 25, Scrollbar.VERTICAL); //entschlüsseln
    private TextArea ta3 = new TextArea("", 5, 25, Scrollbar.VERTICAL);
    private Label l1 = new Label("Verschlüsselungstool in Java");
    private Label l2 = new Label("Bitte geben Sie hier den zu verschlüsselnden Text ein:");
    private Label l3 = new Label("Bitte geben Sie hier das zu entschlüsselnden Text ein:"); 
    private Label l5 = new Label("Von S.Aeschlimann und M.Kurth");

    private String stringCrypter(String msg) 
{ 
    int key = 60; 
    StringBuffer output = new StringBuffer(); 

    for (int i = 0; i < msg.length(); ++i) 
    { 
        output.append((char)(msg.charAt(i) ^ key)); 
    } 

    return output.toString(); 
} 
    String text;
    String text2;
    Font f = new Font ("Arial", Font.PLAIN, 24);
    Font f2 = new Font ("Arial", Font.PLAIN, 12);
    Font f3 = new Font ("Arial", Font.PLAIN, 9);

class okListener implements ActionListener
    {
        public void actionPerformed( ActionEvent e )
        {
          System.exit(0); 
}
}

class ok1Listener implements ActionListener
    {
        public void actionPerformed( ActionEvent e )
        {
          ta3.setText(stringCrypter(ta1.getText())); //Verschlüsseln
        }
    }

class ok2Listener implements ActionListener
    {
        public void actionPerformed( ActionEvent e )
        {  
          ta3.setText(stringCrypter(ta2.getText())); //Entschlüsseln
         }
    }

class ok3Listener implements ActionListener
    {
        public void actionPerformed( ActionEvent e )
        {
          ta3.setText(""); 
          ta2.setText ("");
          ta1.setText ("");
         }
    }

public Frame2( String Beschriftung )
{
    super( Beschriftung );
    setLayout( new FlowLayout());
    setLayout( null );
    button1.setBounds( 675, 120, 130, 30 );
    button2.setBounds( 675, 170, 130, 30 );
    button3.setBounds( 675, 270, 130, 30 );
    button4.setBounds( 675, 220, 130, 30 );
    ta1.setBounds( 25, 120, 300, 150 );
    ta2.setBounds( 350, 120, 300, 150 );
    ta3.setBounds( 25, 290, 625, 150 );
    l1.setBounds( 25, 45, 400, 27 );
    l1.setBackground(new Color(102,140,153));
    l1.setFont (f);
    l2.setBounds( 25, 95, 300, 27 );
    l2.setBackground(new Color(102,140,153));
    l3.setBounds( 350, 95, 300, 27 );
    l3.setBackground(new Color(102,140,153));
    l3.setFont (f2);
    l5.setBounds( 675, 450, 200, 27 );
    l5.setBackground(new Color(102,140,153));
    l5.setFont (f3);
    add( button1 );
    add( button2 );
    add( button3 );
    add( button4 );
    add( ta1 );
    add( ta2 );
    add( l1 );
    add( ta3 );
    add( l2 );
    add( l3 );
    add( l5 );

        okListener ol = new okListener();  // Schliessen
        button3.addActionListener( ol );   
        
        ok1Listener ol1 = new ok1Listener();  //Verschlüsseln
        button1.addActionListener( ol1 );
        
        ok2Listener ol2 = new ok2Listener();  //entschlüsseln
        button2.addActionListener( ol2 );
  
        ok3Listener ol3 = new ok3Listener();  //clear
        button4.addActionListener( ol3 );
}
static public void main(String [] args )
{
    Frame2 f = new Frame2( "Verschlüsselungstool");
    f.setSize(850,500);
    f.show();
    f.setBackground(new Color(102,140,153));
}
}

Und jetz geht es eigentlich nur darum ein wieteres Textfeld in das GUI einzubinden (ist kein Problem) und wenn man in dieses Text Feld ne Zahl oder Buchstabenreihenfolge ein und nur wenn man beim Verschlüsseln und Entschlüsseln den selben Code eingibt wird der kann der Text wieder richtig Entschlüsselt werden. Kann mir da jemand weiter helfen?
 
Wenn ich dich richtig verstanden habe (war gar nicht so einfach !!!! 🙂 ) dann willst Du die Verschlüsselung von einem Passwort abhängig machen ?
Dazu solltest Du Dir eine Funktion überlegen, die das Passwort eineindeutig auf den Zahlenbereich der Integer abbildet. Informier dich dazu mal über Hash-Funktionen.
Wenn Du es aber ganz einfach haben willst kannst Du z.B auch die Summer über aller Zeichen in Deinem Passwort bilden und dann als "key" verwenden. Das hat allerdings den Nachteil, das es verschiedene Passwörter gibt, die auf einen identischen key abgebildet werden. Naja Abhilfe ist dann erst mal jede Stelle im Passwort mit einer wertigkeit zu versehen.
etwa so
sum = charAt(0) * 26^0 + charAt(1) * 26^1 + charAt(2) * 26^2 ......

Ist aber auch nicht so schön, vielleicht wendest Du dann noch den MOD Operator (%) an. Am besten mit einer Primzahl (abhängig vom Passwort ?) denn dann sind deine Restklassen optimal.
Im Endeffekt nützt das aber alles nicht viel, da Deine Verschlüsselung nicht sehr stark ist.....



In Anlehnung an das OneTimePad kannst Du die Zeichen in Deiner Eingabe mit den Zeichen in Deinem Passwort verXORen
string chipper = charAt(0) XOR pass[0] + charAt(1) XOR pass[1] +....
Je länger das Passwort, desto sicherer Deine Verschlüsselung. D.h. wenn das Passwort kürzer ist, benutzt Du es einfach weiter d.h. charAt[1000] XOR pass[0]......
Weiterer Nachteil, wenn Du das Passwort bei vielen verschiedenen Verschlüsselungen verwendest, dann ist das Verfahren auch unsicher.
Vorteil : Kodieren und Dekodieren unterscheiden sich nicht, d.h. 2x angewendet erscheint wieder der Klartext.
 
Ach das die verschlüsselung nicht sehr guet ist spielt keine Rolle s geht nur um ein "Projekt" in der Schule.

Eigentlich hab ichs mir so vorgestellt, dass je nach eingabe des Passwortes ein andere verschlüsselungs Algorithmus verwendet wird

gebe ich z.B. ABC ein so wird jedes Zeichen um 5 Erhöt im ASCII Code

geb ich aber CDE als Passwort ein wird jedes Zeichen um 3 erhöt im ASCII Code...
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben