www.r-krell.de
Webangebot für Schule und Unterricht, Software, Fotovoltaik und mehr

Willkommen/Übersicht  >  Informatik  >  Informatik mit Java, Teil j)   >  Kryptografie-Applet starten


Kryptografie-Applet

Links oben erscheint (vor oder hinter diesem Browserfenster)
ein Extra-Fenster mit dem Kryptografie-Applet:

Verfahren wählen, Klar- oder Geheimtext eingeben und Ver- oder Entschlüsseln drücken


Achtung: Java-Applets müssen zugelassen sein. Erscheint in Ihrem Internet-Explorer
oben eine gelbe Leiste, bitte drauf klicken und geblockte Inhalte zulassen...!

Applet geht nicht oder wird blockiert? - Gründe, Abhilfe und alle Downloads (in neuem Tab) - nur Kryptografie_klassisch (r-krell.de).jar (15 kB) herunter laden



Nachfolgend der Quelltext des Applets, soweit nicht bereits auf der "Informatik-mit-Java"-Seite j) dargestellt:

Die Quelltexte zu den verschiedenen Verfahren sind bereits auf der Seite j): Kryptologie I angegeben (mit Ausnahme des Playfair-Verfahrens, das hier als Bonus integriert ist und sich von den anderen Verfahren nicht nur wegen der Verwendung von ausschließlich 25 Großbuchstaben, sondern auch dadurch unterscheidet, dass es keinen Schlüssel braucht bzw. kennt. Ist von einem Geheimtext einmal bekannt, dass er Playfair-verschlüsselt wurde, kann er sofort entschlüsselt werden, da hier die Sicherheit in der Geheimhaltung des Verfahrens statt in der Verwendung eines geheimen Schlüssels lag).


zum Inhaltsverzeichnis (oben) / zum Seitenende

Startdatei für den Start des Kryptografie-Programms als Applet oder als Application

// Rahmen für Kryptgrafie-Programme. Krell, 27.9.2010/23.1.2011 für IF 13M bzw. www.r-krell.de

public class CryptoRahmenStart extends java.applet.Applet
{
  
public static void main (String[] s)
  {
    CryptoRahmen cr = 
new CryptoRahmen();
    cr.führeAus();
  }
  
  
public void init()    // Start als Applet
  {
    CryptoRahmen cr = 
new CryptoRahmen();
    cr.führeAus();
  }
}


zum Inhaltsverzeichnis (oben) / zum Seitenende


Programmtext der Oberfläche

// Rahmen für Kryptografie-Programme. Krell, 27.9.2010/20.1.2011 für IF 13M bzw. www.r-krell.de

import java.awt.*;
import java.awt.event.*;

public class CryptoRahmen extends Frame implements ItemListener
  
// Frame ist die Fensterklasse; ItemListener für addItemListener und itemStateChanged
{

  
// Anfang Attribute
  private Button btVerschlüsseln, btEntschlüsseln;        // Vorsilben wie lb, bt, tf und ta vor den Namen
  private TextField tfKlartext, tfGeheimtext, tfZusatz;   // sollen auf die Art des Objekts hinweisen!
  private CheckboxGroup cbg1 = new CheckboxGroup();
  
private Checkbox cbSkytale, cbCäsar, cbVerschiebewort, cbVigenere, cbPlayfair;
  
  CryptoAction ca = 
null;  // CryptoAction ist ein Interface, das die Existenz der beiden
    // Methoden "String verschlüssele (String klartext, String zusatz)" und
    // "String entschlüssele (String geheimtext, String zusatz)" verspricht.
  // Ende Attribute


  // Anfang Methoden
  
  
public void itemStateChanged (ItemEvent e)  // für Radiobutton-Auswahl; cbg = check button group
    // Zur Laufzeit wird ein Verfahren ausgewählt
    // *** Noch nicht existierende Verfahren zunächst auskommentieren! ***
  {
    
if (cbg1.getSelectedCheckbox().equals(cbSkytale))
    {
      ca = 
new CryptoSkytaleII();
    }
    
else if (cbg1.getSelectedCheckbox().equals(cbCäsar))
    {
      ca = 
new CryptoCaesar();
   }
    
else if (cbg1.getSelectedCheckbox().equals(cbVerschiebewort))
    {
      ca = 
new CryptoVerschiebewort();
    }
    
else if (cbg1.getSelectedCheckbox().equals(cbVigenere))
    {
      ca = 
new CryptoVigenere();
    }
    
else if (cbg1.getSelectedCheckbox().equals(cbPlayfair))
    {
      ca = 
new CryptoPlayfair();
      tfZusatz.setText(
"** Für Playfair unnötig **");
    }
  }

  
private void richteFensterEin() // Fenster initalisieren und beschreiben
  {
    
//WindowsListener hinzufügen, damit Schließsymbol 'x' funktioniert
    addWindowListener (
      
new WindowAdapter ()
      {
        
public void windowClosing (WindowEvent ereignis)
        {                
//ersetzt bisher leere Methode
          setVisible (false);
          dispose();
          System.exit(
0);
        }
      }
    ); 
// runde Klammer vom Windowlistener geschlossen;

    setTitle("Kryptografie (www.r-krell.de)"); // Fenster mit Titel versehen
    setSize (620,160); //Fenstergröße (Breite und Höhe in Pixeln)festlegen
    // könnte auch später in führeAus() vor Layout- und add(..)-Befehlen stehen
  }

  
private void richteKnöpfeEin()
  {
    btVerschlüsseln  = 
new Button ("Verschlüsseln");
    
// oder: .. = new Button(); btKnopf.setLabel ("Knopf-Beschriftung");

    //Funktion der Knöpfe festlegen
    btVerschlüsseln.addActionListener (
      
new ActionListener ()
      {
        
public void actionPerformed (ActionEvent e)
        {
          
// Klartext mit klar = tfKlartext.getText() holen,
          // verschlüsseln und Ergebnis als Geheimtext ausgeben:
          if (ca==null)
          {
            tfGeheimtext.setText(
"** Vorm Verschlüsseln erst Verfahren wählen! **");
          }
          
else
          {
            tfGeheimtext.setText(ca.verschlüssele(tfKlartext.getText(), tfZusatz.getText()));
            
// Kann fehlerfrei kompiliert werden, da ca die Existenz von verschlüssele.. verspricht
          }
        }
      }); 
// runde Klammer (von addActionListener)


    btEntschlüsseln  = new Button ("Entschlüsseln");
    
// oder: .. = new Button(); btKnopf.setLabel ("Knopf-Beschriftung");

    //Funktion der Knöpfe festlegen
    btEntschlüsseln.addActionListener (
      
new ActionListener ()
      {
        
public void actionPerformed (ActionEvent e)
        {
          
// Geheimtext mit geheim = tfGeheimtext.getText() holen,
          // entschlüsseln und Ergebnis
          // mit tfKlartext.setText(ergebnis) anzeigen
          if (ca==null)
          {
            tfKlartext.setText(
"** Vorm Entschlüsseln erst Verfahren wählen! **");
          }
          
else
          {
            tfKlartext.setText(ca.entschlüssele(tfGeheimtext.getText(), tfZusatz.getText()));
            
// Kann fehlerfrei kompiliert werden, da ca die Existenz von entschlüssele.. verspricht
          }
        }
      }); 
// runde Klammer (von addActionListener)
   }

  
private void richteEingabezeilenEin()
  {
    tfKlartext   = 
new TextField("Das ist ein Probetext",50);
    tfGeheimtext = 
new TextField("",50);
    tfZusatz     = 
new TextField("",30);
    tfKlartext.setFont(
new Font("monospaced"012));
    tfGeheimtext.setFont(
new Font("monospaced"012));
  }
  
  
private void richteRadioknöpfeEin()
  {
    cbSkytale    = 
new Checkbox ("Skytale", cbg1, false);
    cbCäsar      = 
new Checkbox ("Cäsar", cbg1, false);
    cbVerschiebewort = 
new Checkbox ("mono m. Merkwort", cbg1, false);
    cbVigenere   = 
new Checkbox ("Vigenère", cbg1, false);
    cbPlayfair   = 
new Checkbox ("Playfair", cbg1, false);
    cbSkytale.addItemListener (
this);
    cbCäsar.addItemListener (
this);
    cbVerschiebewort.addItemListener (
this);
    cbVigenere.addItemListener (
this);
    cbPlayfair.addItemListener (
this);
  }

  
public void führeAus ()
  {
    richteFensterEin();        
// Aufruf der Methoden zum Erzeugen der
    richteKnöpfeEin();         // Bildschirmobjekte und der Definition
    richteEingabezeilenEin();
    richteRadioknöpfeEin();

    setLayout (
new FlowLayout()); // innere Unterteilung des Bildschirmfensters
    add (new Label ("       Klartext"));
    add (tfKlartext);
    add (btVerschlüsseln);
    add (
new Label ("Geheimtext"));
    add (tfGeheimtext);
    add (btEntschlüsseln);
    add (
new Label ("Benötigte Zusatzinfo (Umfang, Verschiebung, Schlüssel..)"));
    add (tfZusatz);
    add (cbSkytale);
    add (cbCäsar);
    add (cbVerschiebewort);
    add (cbVigenere);
    add (cbPlayfair);
    setVisible(
true);          // Macht Bildschirm mit allen angeordneten
      // Objekten sichtbar und startet damit das Programm
  }

  
// Ende Methoden
}




zum Inhaltsverzeichnis (oben) / zum Seitenende




zurück zur Seite „Informatik mit Java, Teil j)"




zum Anfang dieser Seite
Willkommen/Übersicht   -   Was ist neu?   -   Software   -   Mathematik   -   Physik   -   Informatik   -   Schule: Lessing-Gymnasium und -Berufskolleg   -   Fotovoltaik   -   & mehr   -   Kontakt: e-Mail,  News-Abo, Gästebuch, Impressum   -  Grußkarten, site map, Download und Suche

Diese Seite ist Teil des Webangebots http://www.r-krell.de. Sie können diese Seite per e-Mail weiter empfehlen (tell a friend).