Sitzung: Jeden Freitag in der Vorlesungszeit ab 16 Uhr c. t. im MAR 0.005. In der vorlesungsfreien Zeit unregelmäßig (Jemensch da?). Macht mit!

Javakurs/Übungsaufgaben/Cäsar-Chiffre: Unterschied zwischen den Versionen

Zeile 1: Zeile 1:
Im folgenden soll ein Programm weitgehend selbsttändig entwickelt werden. Lese dir das nötige Wissen zur [http://de.wikipedia.org/wiki/Caesar-Chiffre#Sicherheit Cäsar-Chiffre] im Web an und überlegt dir selbst eine Struktur für dein Programm.
+
Im Folgenden soll ein Programm weitgehend selbsttändig entwickelt werden. Lies dir das nötige Wissen zur [[wikipedia:Caesar-Chiffre#Sicherheit|Cäsar-Chiffre]] im Web an und überlege dir selbst eine Struktur für dein Programm.
  
Macht dir auch Gedanken darüber wie du die einzelnden Teile frühzeitig testen kannst.
+
Mache dir auch Gedanken darüber, wie du die einzelnen Teile frühzeitig testen kannst.
  
  
#Erstelle ein Programm das einen Text als Code im Programmtext enthält, mit einem Passwort durch eine [http://de.wikipedia.org/wiki/Caesar-Chiffre#Sicherheit Cäsar-Chiffre] verschlüsselt und auf der Console ausgibt.  
+
#Erstelle ein Programm, das einen Text als Code im Programmtext enthält, mit einem Passwort durch eine Cäsar-Chiffre verschlüsselt und auf der Konsole ausgibt.  
  
 
Komfortabler, aber mit ein wenig Aufwand verbunden. Tipps siehe unten :
 
Komfortabler, aber mit ein wenig Aufwand verbunden. Tipps siehe unten :
Zeile 11: Zeile 11:
  
 
#Erweitere dein Programm so, dass es einen mit der selben Chiffre verschlüsselten Text bei gegebendem Passwort entschlüsseln kann und in einer seperaten Datei speichert.
 
#Erweitere dein Programm so, dass es einen mit der selben Chiffre verschlüsselten Text bei gegebendem Passwort entschlüsseln kann und in einer seperaten Datei speichert.
#Erweitere dein Programm so, dass es in der Lage ist einen beliebigen mit einer [http://de.wikipedia.org/wiki/Caesar-Chiffre#Sicherheit Cäsar-Chiffre] verschlüsselten Text mit Hilfe von [http://de.wikipedia.org/wiki/H%C3%A4ufigkeitsanalyse Häufigkeitsanalyse] ohne das Passwort zu kennen zu entschlüsseln. Gib auch das gefundene Passwort an.
+
#Erweitere dein Programm so, dass es in der Lage ist, einen beliebigen mit einer Cäsar-Chiffre verschlüsselten Text mit Hilfe von [[wikipedia:Häufigkeitsanalyse|Häufigkeitsanalyse]], ohne das Passwort zu kennen, zu entschlüsseln. Gib auch das gefundene Passwort an.
  
  
Zeile 18: Zeile 18:
  
 
=== Verschlüsseln / Entschlüsseln ===
 
=== Verschlüsseln / Entschlüsseln ===
#Trage einen von dir verschlüsselten Text mit min. 50 Zeichen hier im Wiki ein und verlinke ihn auf dieser Seite unter deinem Namen. Entschlüssle andere Texte die hier verlinkt sind.
+
#Trage einen von dir verschlüsselten Text mit min. 50 Zeichen hier im Wiki ein und verlinke ihn auf dieser Seite unter deinem Namen. Entschlüssle andere Texte, die hier verlinkt sind.
  
Wenn du willst kannst du deinen Chiffrieralgorythmus auch verändern oder einen anderen implementieren, mache das im Link zu deinen damit verschlüsselten Texten aber auch kenntlich. Denke daran das du selbst in der Lage sein solltest deine Texte bei gegebendem Passwort zu entschlüsseln ;)
+
Wenn du willst, kannst du deinen Chiffrieralgorythmus auch verändern oder einen anderen implementieren, mache das im Link zu deinen damit verschlüsselten Texten aber auch kenntlich. Denke daran, dass du selbst in der Lage sein solltest, deine Texte bei gegebendem Passwort zu entschlüsseln ;)
  
  
 
'''Tipps:'''
 
'''Tipps:'''
  
* Zum Einlesen von Textdateien schaut in der Java API unter ''BufferedReader'', ''InputStreamReader'' und ''FileInputStream'' nach. Hier ein Beispiel wie man diese Klassen benutzen könnte (vergesst bei euch die import-Anweisungen nicht):
+
* Zum Einlesen von Textdateien schaut in der Java API unter ''BufferedReader'', ''InputStreamReader'' und ''FileInputStream'' nach. Hier ein Beispiel, wie man diese Klassen benutzen könnte (vergesst bei euch die import-Anweisungen nicht):
  
 
  BufferedReader bufferedReader = new BufferedReader(
 
  BufferedReader bufferedReader = new BufferedReader(
Zeile 46: Zeile 46:
  
 
== Kommentare ==
 
== Kommentare ==
Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf "bearbeiten" und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)
+
Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf "bearbeiten" und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)
  
 
<!--
 
<!--
Als kleine Starthilfe folgt ein Beispiel wie so ein Kommentar formatiert sein könnte. Mit "Vorschau zeigen" kannst du dir ansehen was deine Änderung bewirken würde, ohne wirklich etwas zu ändern.
+
Als kleine Starthilfe folgt ein Beispiel, wie so ein Kommentar formatiert sein könnte. Mit "Vorschau zeigen" kannst du dir ansehen, was deine Änderung bewirken würde, ohne wirklich etwas zu ändern.
 
Du musst übrigens außerhalb dieses auskommentieren Bereichs schreiben ;)
 
Du musst übrigens außerhalb dieses auskommentieren Bereichs schreiben ;)
  
 
==== Robert ====
 
==== Robert ====
Na mal schaun ob irgend jemand diese Funktion wirklich benutzt. Ich fände es jedenfalls toll.
+
Na mal schauen, ob irgendjemand diese Funktion wirklich benutzt. Ich fände es jedenfalls toll.
 
-->
 
-->

Version vom 11. April 2007, 12:11 Uhr

Im Folgenden soll ein Programm weitgehend selbsttändig entwickelt werden. Lies dir das nötige Wissen zur Cäsar-Chiffre im Web an und überlege dir selbst eine Struktur für dein Programm.

Mache dir auch Gedanken darüber, wie du die einzelnen Teile frühzeitig testen kannst.


  1. Erstelle ein Programm, das einen Text als Code im Programmtext enthält, mit einem Passwort durch eine Cäsar-Chiffre verschlüsselt und auf der Konsole ausgibt.

Komfortabler, aber mit ein wenig Aufwand verbunden. Tipps siehe unten :

  • der Text soll aus einer Datei eingelesen werden
  • der chiffrierte Text soll in einer neuen Datei gespeichert werden.
  1. Erweitere dein Programm so, dass es einen mit der selben Chiffre verschlüsselten Text bei gegebendem Passwort entschlüsseln kann und in einer seperaten Datei speichert.
  2. Erweitere dein Programm so, dass es in der Lage ist, einen beliebigen mit einer Cäsar-Chiffre verschlüsselten Text mit Hilfe von Häufigkeitsanalyse, ohne das Passwort zu kennen, zu entschlüsseln. Gib auch das gefundene Passwort an.


Hinweis: Unsere Tutoren können dir bei allen auftretenden Javaproblemen helfen, wir können allerdings nicht garantieren, dass sie sich in ihrer Freizeit auch mit Kryptographie beschäftigen.

Verschlüsseln / Entschlüsseln

  1. Trage einen von dir verschlüsselten Text mit min. 50 Zeichen hier im Wiki ein und verlinke ihn auf dieser Seite unter deinem Namen. Entschlüssle andere Texte, die hier verlinkt sind.

Wenn du willst, kannst du deinen Chiffrieralgorythmus auch verändern oder einen anderen implementieren, mache das im Link zu deinen damit verschlüsselten Texten aber auch kenntlich. Denke daran, dass du selbst in der Lage sein solltest, deine Texte bei gegebendem Passwort zu entschlüsseln ;)


Tipps:

  • Zum Einlesen von Textdateien schaut in der Java API unter BufferedReader, InputStreamReader und FileInputStream nach. Hier ein Beispiel, wie man diese Klassen benutzen könnte (vergesst bei euch die import-Anweisungen nicht):
BufferedReader bufferedReader = new BufferedReader(
          new InputStreamReader(
          new FileInputStream("MeineDatei.txt"))); 
String line;
boolean endOfFile = false;
while ((line = ) != null) {
    line = bufferedReader.readLine();
    if(line == null){
        endOfFile = true;
    } else{
         // in dem String line steht jetzt die
         // aktuelle Zeile des Programms
    }
}



Kommentare

Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf "bearbeiten" und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)