G
Guest
Gast
Hallo!
Ich hab folgendes Problem: In Java bin ich nicht wirklich bewandert und jetzt haben wir in Informatik eine Hausaufgabe aufbekommen, die mir Kopfzerbrechen bereitet!
Wir sollen einen Quellcode erzeugen, um einen Text (klartext) mit dem Schlüssel (key) in einen verschlüsselten Text (geheimtext) umzuwandeln. key soll jeden Buchstaben im Alphabet verschieben, sodass ein anderer Buchstabe in geheimtext ausgegeben wird. Ein ‚A’ wird also zum Beispiel zum ‚D’, ein ‚D’ dementsprechend zum ‚G’. In einer zweiten Methode wird geheimtext wieder dechiffriert, sodass klartext ausgegeben wird. Diese Art der Verschlüsselung nennt sich Cäsar, da sie schon zu Zeiten Cäsars im Römischen Reich verwendet wurde.
Das ist mein jetziger Code:
Ich hoffe ihr könnt mir helfen! Die Methode chiffrieren funktioniert, aber dechiffrieren nicht wirklich. Unsere Aufgabe war eigentlich auch toLowerCase() zu verwenden. Das habe ich nicht geschafft. Vielleicht kann mir ja auch da jemand weiterhelfen.
Danke im Voraus!
Ich hab folgendes Problem: In Java bin ich nicht wirklich bewandert und jetzt haben wir in Informatik eine Hausaufgabe aufbekommen, die mir Kopfzerbrechen bereitet!
Wir sollen einen Quellcode erzeugen, um einen Text (klartext) mit dem Schlüssel (key) in einen verschlüsselten Text (geheimtext) umzuwandeln. key soll jeden Buchstaben im Alphabet verschieben, sodass ein anderer Buchstabe in geheimtext ausgegeben wird. Ein ‚A’ wird also zum Beispiel zum ‚D’, ein ‚D’ dementsprechend zum ‚G’. In einer zweiten Methode wird geheimtext wieder dechiffriert, sodass klartext ausgegeben wird. Diese Art der Verschlüsselung nennt sich Cäsar, da sie schon zu Zeiten Cäsars im Römischen Reich verwendet wurde.
Das ist mein jetziger Code:
Code:
public class Caesar
{
public Caesar()
{
}
public String chiffrieren(String klartext, int key)
{
String geheimtext = "";
String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
int position;
int x;
klartext = klartext.toUpperCase();
for(x = 0; x < klartext.length(); x++)
{
if((int)klartext.charAt(x) > 64 && (int)klartext.charAt(x) < 91)
{
position = (alphabet.indexOf(klartext.charAt(x)) + key);
for(; position > 25; position -= 26){}
geheimtext += alphabet.charAt(position);
}
else
{
geheimtext += klartext.charAt(x);
}
}
return geheimtext;
}
public String dechiffrieren(String geheimtext, int key)
{
String klartext = "";
String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
int position;
int x;
geheimtext = geheimtext.toUpperCase();
for(x = 0; x < geheimtext.length(); x++)
{
if((int)geheimtext.charAt(x) > 64 && (int)geheimtext.charAt(x) < 91)
{
position = (alphabet.indexOf(geheimtext.charAt(x)) + key);
for(; position > 25; position -= 26){}
klartext += alphabet.charAt(position);
}
else
{
klartext += geheimtext.charAt(x);
}
}
return klartext;
}
}
Ich hoffe ihr könnt mir helfen! Die Methode chiffrieren funktioniert, aber dechiffrieren nicht wirklich. Unsere Aufgabe war eigentlich auch toLowerCase() zu verwenden. Das habe ich nicht geschafft. Vielleicht kann mir ja auch da jemand weiterhelfen.
Danke im Voraus!