Text ver- und entschlüsseln

Status
Nicht offen für weitere Antworten.
T

tanja

Gast
Eine einfaches Verfahren, um einen Text zu verschlüsseln, ist das folgende: Der Klartext wird in Form einer Matrix aufgeschrieben, hier im Beispiel mit 9 Spalten. Dabei werden Leer- und Sonderzeichen ignoriert:

T H E Q U I C K B
R O W N F O X J U
M P S O V E R T H
E L A Z Y D O G

Um den verschlüsselten Text zu erhalten, wird der Text wie folgt aus der Matrix ausgelesen: Die erste Spalte wird von oben nach unten gelesen (TRME), dann folgt die zweite Spalten von unten nach oben gelesen (LPOH), die dritte wieder von oben, usw. Zusammengesetzt ergibt sich der verschlüsselte Text (zur Übersichtlichkeit mit Leerzeichen getrennt): TRME LPOH EWSA ZONQ UFVY DEOI CXRO GTJK BUH. Implementieren Sie die Methoden
static char[] matrixEncode(char[] text, int cols)
static char[] matrixDecode(char[] text, int cols)

die nach diesem Verfahren Texte ver- und entschlüsseln können. cols bezeichnet die Spaltenanzahl der Matrix. Entschlüsseln Sie den folgende Text:

DIOTIAVIMRLENNANHETEAECIONGIWETHSIPNIORARHCBPOECFASOASAHYOSAETMNEBEMFARFETIVBRNTFTIDITRAIIHTSDUNDEGNSESANPOESEGIMO

DIOOIDWTASBACNMAINSNSECIOTGFSOIHGEATRTEOFNNIPMEAFAEEDRLETDRASOYHEOFCRIUISESEMPHTITPRIIHNSAOERBAVTNVAAENNGIMTNEIHEB

Hinweis:
Je nach Implementierung unterscheiden sie Ver- und Entschlüsselung nur minimal. Sie können alternativ eine Methode static char[] matrixCode(char[] text, int cols, boolean encode) schreiben, die abhängig vom encode-Parameter ver- oder entschlüsselt.

Umwandlung zwischen String und char[]:

String s = "text";
char[] c = s.toCharArray(); // hin
s = new String(c); // zurück


So Jungs... hierbei bin ich echt überfordert. Würde mich über jede Hilfe sehr freuen. Vielen Dank schonmal :)
 

Maks

Aktives Mitglied
Als kleiner Hinweis für den Anfang:

Man gehe zu google und gebe "Matrix" ein
http://mindprod.com/jgloss/gotchas.html#MATRIX

ziehe evtl. noch ein Java Tutorial hinzu, siehe:
java-forum.org/de Foren-Übersicht -> Bücher, Tutorials und Links

und wenn man dann weiß, was eine Matrix ist, dann kann man erst mal ein wenig mit
System.out.println (mat [j] );
experimentieren um sich eine Vorstellung davon zu machen, was mit den Buchstaben so passieren muß, damit es nach Verschlüsselung aussieht.

zur besseren Veranschaulichung:
char mat [0] [0] = "T";
char mat [1] [0] = "H";
char mat [2] [0] = "E";
char mat [3] [0] = "Q";
char mat [4] [0] = "U";
char mat [5] [0] = "I";
char mat [6] [0] = "C";
char mat [7] [0] = "K";
char mat [8] [0] = "B";
char mat [9] [0] = "R";
char mat [0] [1] = "O";
char mat [1] [1] = "W";
char mat [2] [1] = "N";
char mat [3] [1] = "F";
char mat [4] [1] = "O";

und hier gibts dann noch ein paar schöne Beispiele
(gefunden in Google mit der Suche nach:"Matrix beispiele java"):

http://www.uni-koeln.de/rrzk/kurse/unterlagen/java/oop/samples/

Dann muß man noch eine passende Methode dazu schreiben (Variablen laut Vorgabe) und nimmt die gleiche Methode (in Umkehrung des Vorgangs) zum Entschlüsseln.

Das wäre jetzt so mein grober Vorschlag. Muß aber sagen, daß ich momentan auch nicht so einfach einen Code hinschreiben könnte...
 

Reality

Top Contributor
Maks hat gesagt.:
zur besseren Veranschaulichung:
char mat [0] [0] = "T";
char mat [1] [0] = "H";
char mat [2] [0] = "E";
char mat [3] [0] = "Q";
char mat [4] [0] = "U";
char mat [5] [0] = "I";
char mat [6] [0] = "C";
char mat [7] [0] = "K";
char mat [8] [0] = "B";
char mat [9] [0] = "R";
char mat [0] [1] = "O";
char mat [1] [1] = "W";
char mat [2] [1] = "N";
char mat [3] [1] = "F";
char mat [4] [1] = "O";
Falsch!


Code:
char mat [0] [0] = "T";
char mat [1] [0] = "R";
char mat [2] [0] = "M";
char mat [0] [1] = "H";
char mat [1] [1] = "O";
usw.

Oder damit man es sich besser vorstellen kann:
Code:
  char matrixDecode [][]= {
                       {'T', 'H', 'E', 'Q', 'U', 'I', 'C', 'K', 'B'},
                       {'R', 'O', 'W', 'N', 'F', 'O', 'X', 'J', 'U'},
                       {'M', 'P', 'S', 'O', 'V', 'E', 'R', 'T', 'H'},
                       {'E', 'L', 'A', 'Z', 'Y', 'D', 'O', 'G'} };

Liebe Grüße
Reality
 

Reality

Top Contributor
So, ich habe dir den Code zum verschlüsseln geschrieben.
Mit new String(matrixDecode[J]) ging das irgendwie nicht ???:L, darum habe ich valueOf genommen.

Code:
class DecodeEncode {
  public static void main(String[] args) {
  char matrixDecode [][]= {
                       {'T', 'H', 'E', 'Q', 'U', 'I', 'C', 'K', 'B'},
                       {'R', 'O', 'W', 'N', 'F', 'O', 'X', 'J', 'U'},
                       {'M', 'P', 'S', 'O', 'V', 'E', 'R', 'T', 'H'},
                       {'E', 'L', 'A', 'Z', 'Y', 'D', 'O', 'G'} }; 

char matrixEncode [][][][];
String decode="";
String tmp;
for( int j=0; j< matrixDecode.length; j++)
{
  for (int i = 0; i < matrixDecode.length; i++) {
    tmp = String.valueOf(matrixDecode[i][j]);
    decode=decode+tmp;
    }
   }
System.out.println(decode);
  }
}

Liebe Grüße
Reality

PS: Decodieren geht genau umgekehrt. ;)
 

Reality

Top Contributor
Jetzt weiss ich warum new String(matrixDecode[J]) nicht geht. Das geht nur mit eindimensionalen Arrays!
Dann hab ich es irgendwie anders gemacht, als der Lehrer es verlangte, aber das ist eigentlich egal.

Liebe Grüße
Reality
 

Maks

Aktives Mitglied
Deine Korrektur Reality:
(jetzt bräuchte ich ein Smilie, das seine Hand vor den Kopf schlägt)

nicht schlecht der Code, dafür hätte ich erheblich länger gebraucht!
Bin gerade in Gedanken bei Roulette...aber DAS Thema ist wirklich auch interessant!
 

Reality

Top Contributor
Oh, Mist!


j sollte größer sein als matrixDecode.length.
Nur gibt es ein Problem:
Max größe bei 0:
[0][8]

Bei 3:
[3][7] ,da es ein Zeichen weniger hat.

Da bin ich jetzt überfragt!

@maks: Danke, aber der Code ist Scheiße wie du siehst. ;)
 

Reality

Top Contributor
Schummelei: :(
Code:
for (int j = 0; j < 8; j++) {
    for (int i = 0; i < matrixDecode.length; i++) {
      tmp = String.valueOf(matrixDecode[i][j]);
      decode = decode + tmp;
        }
      }
for(int i=0; i<=2; i++)
{
decode = decode + String.valueOf(matrixDecode[i][8]);
}
System.out.println(decode);
 
T

Tanja

Gast
Hallöchen!
Da bin ich wieder. Erstmal vielen Dank für die Vorarbeit :) Bin echt beeindruckt in welcher kurzen Zeit Ihr die Aufgaben lösen könnt. Sitze immer zig Stunden bis ich einen Lösungsansatz gefunden habe.
@maks: der tipp mit den beispielen ist echt nicht schlecht, habe da viele aufgaben gefunden, die ich lösen muss *g* Danke *hihi*

Werde jetzt versuchen den Quellcode so anzupassen, dass ich Encodieren kann und diesen Text hier "DIOOIDWTASBACNMAINSNSECIOTGFSOIHGEATRTEOFNNIPMEAFAEEDRLETDRASOYHEOFCRIUISESEMPHTITPRIIHNSAOERBAVTNVAAENNGIMTNEIHEB" entschlüssen kann :)

Nochmals vielen Dank euch beiden :) Werde in naher Zukunft auch wohl weiterhin Hilfe gebrauchen :/
Tanja
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
richis-fragen JTable effektiv angezeigter Text ausgeben nicht Inhalt vom Model Java Basics - Anfänger-Themen 9
A Edit Text Negative Decimalzahlen Java Basics - Anfänger-Themen 18
P Aus Text Datei nur Zahlen übernehmen Java Basics - Anfänger-Themen 13
T Text einlesen code was kommt dahin? Java Basics - Anfänger-Themen 1
R Text in der DB abspeichern, und danach bearbeiten Java Basics - Anfänger-Themen 5
A JTextArea entfernen und durch neuen Text ersetzen Java Basics - Anfänger-Themen 8
JavaBeginner22 Button Text verändern Java Basics - Anfänger-Themen 1
GoenntHack Java Text von JLabel verändert sich nicht Java Basics - Anfänger-Themen 1
A Text zu Morsecode Java Basics - Anfänger-Themen 8
O Java Text Area Zeilenausgabe Java Basics - Anfänger-Themen 7
M Text wird in der Console nicht ausgegeben. Java Basics - Anfänger-Themen 11
berserkerdq2 An selbst ersteller txt Datei immer Text dranhängen, ohne den vorherign Text zu löschen Java Basics - Anfänger-Themen 8
M Text in Datei schreiben Java Basics - Anfänger-Themen 9
T208 Text Datei individuell benennen. Java Basics - Anfänger-Themen 5
A Werten aus dem Text ausliesten Java Basics - Anfänger-Themen 6
K Jlabel mit itemlistevent Text gegeben, wird nicht angezeigt Java Basics - Anfänger-Themen 5
Kiki01 Wie würde eine geeignete Schleife aussehen, die die relative Häufigkeit für jeden Charakter in einem Text bestimmt? Java Basics - Anfänger-Themen 3
O Text mit Regex trennen und wieder zusammenbauen Java Basics - Anfänger-Themen 5
xFlozen Text mehrspaltig ausgeben Java Basics - Anfänger-Themen 3
S Zufällige ungerade Zeile aus Text-Datei lesen Java Basics - Anfänger-Themen 5
K Rekursiver Vergleich von Textmuster und Text Java Basics - Anfänger-Themen 2
C Variablen Provided text for message may not be null Java Basics - Anfänger-Themen 9
H Klassen Die Länge einer Text-Node bestimmen Java Basics - Anfänger-Themen 2
F Erste Schritte java.util.Scanner: Beliebig langen Text per Paste in Console eingeben ? Java Basics - Anfänger-Themen 14
GermanPie Discord Text Channel erstellen? Java Basics - Anfänger-Themen 1
C JButton Text 2 Mal ändern funktioniert nicht Java Basics - Anfänger-Themen 8
yoskaem Text Color durch Klicken eines Buttons in anderer Activity ändern Java Basics - Anfänger-Themen 2
B Alle Links in einem Text suchen und ersetzen mit einem neuen Link Java Basics - Anfänger-Themen 18
J Java TextArea Text bei hinzufügen makieren Java Basics - Anfänger-Themen 1
T Text-Ausgabe für Textadventure - Organisation Java Basics - Anfänger-Themen 5
G Anklickbaren Text erzeugen Java Basics - Anfänger-Themen 2
B Text-Datei nur in Stream speichern und dann ausgeben Java Basics - Anfänger-Themen 3
M Java: BufferedReader liest nur die Hälfte der Text-Datei. Java Basics - Anfänger-Themen 4
M Apache POI PPT - Vertikales Alignment von Text im XSLFAutoShape Java Basics - Anfänger-Themen 2
I Nur auf Abfrage von einer Text Datei einlesen Java Basics - Anfänger-Themen 11
P Text Datei einlesen und übertragen Java Basics - Anfänger-Themen 15
P Taschenrechner Text übertragung Java Basics - Anfänger-Themen 3
J java.text.DecimalFormat Java Basics - Anfänger-Themen 5
AnnaBauer21 GridBagLayout JLabel weightx: Unterschiedliche Breite mit & ohne Text Java Basics - Anfänger-Themen 6
K Durch eine Text eingabe etwas Ausführen Java Basics - Anfänger-Themen 5
S Text-To-Speech mit Java Java Basics - Anfänger-Themen 2
L Text-Adventure Java Basics - Anfänger-Themen 3
M Input/Output Java Swing: Prüft ob Text aus JTextField ausschließlich Integer enthält Java Basics - Anfänger-Themen 15
ruutaiokwu Ausgegebene Zeile ersetzen mit neuem Text Java Basics - Anfänger-Themen 3
tsom Erste Schritte itext Text als Block auf neue Seite Java Basics - Anfänger-Themen 0
Dimax Programme ,als Text in MySql speichern Java Basics - Anfänger-Themen 7
CptK Datentypen Text Dateien einlesen Java Basics - Anfänger-Themen 3
Harlequin Compiler-Fehler Text Adventure - "Long Output" Fehler Java Basics - Anfänger-Themen 3
S Zeichen zählen kopierter Text Java Basics - Anfänger-Themen 6
D Text als Code in java-forum.com formatieren. Wie ? Java Basics - Anfänger-Themen 3
F Schreibprogramm nur markierten Text in kursiv oder fett schreiben Java Basics - Anfänger-Themen 3
A Rechnen mit Text und Zahl Java Basics - Anfänger-Themen 4
MaximilianTM Input/Output Einlesen und bearbeiten einer text Datei / Zeile Java Basics - Anfänger-Themen 5
M Erste Schritte Verschlüsselung von text Java Basics - Anfänger-Themen 21
S Text aus einer HTML Datei auslesen Java Basics - Anfänger-Themen 1
S Java Text splitten mit Tabs, Zeilen, Zeichen und Klammern. Java Basics - Anfänger-Themen 6
M Beliebigen Text in *** umwandeln Java Basics - Anfänger-Themen 15
K (JTable) Text einer Zelle auf der linken Seite kürzel Java Basics - Anfänger-Themen 2
H Suche in Text und Markierung Java Basics - Anfänger-Themen 14
H Suche in einem Text Java Basics - Anfänger-Themen 17
F Input/Output Text einlesen lassen Java Basics - Anfänger-Themen 14
L Text eingeben und im Textfeld auslesen lassen Java Basics - Anfänger-Themen 2
R Best Practice Palindrom in einem Text finden Java Basics - Anfänger-Themen 18
J Text Datei einlesen Java Basics - Anfänger-Themen 6
L Text und Ganzzahl in einer Dialogbox Java Basics - Anfänger-Themen 5
D Text Adventure Erstellen Java Basics - Anfänger-Themen 10
T Jlabel durch Text in 2 anderen Jlabels sichtbar machen Java Basics - Anfänger-Themen 4
J JTextArea visible ohne Text Java Basics - Anfänger-Themen 3
D Bild zu Text Java Basics - Anfänger-Themen 4
L Text/Befehle zu Programmen senden Java Basics - Anfänger-Themen 1
L Java Text datei nur bis zu einem Punkt auslesen? Java Basics - Anfänger-Themen 3
T Classpath Problem mit dem auslesen von Text-Dateien (Pfad) Java Basics - Anfänger-Themen 3
S Erste Schritte Sprachermittler - Datei öffnen, Text in TextArea, Bereinigen, Auswerten Java Basics - Anfänger-Themen 14
S Java Label hat komischen text Java Basics - Anfänger-Themen 4
F Text anhand bestimmter Trennzeichen in Textteile trennen (netbeans) Java Basics - Anfänger-Themen 7
S Ausgabe von Text Formatieren Java Basics - Anfänger-Themen 6
H Text in einen Button quetschen Java Basics - Anfänger-Themen 3
A Text mit "Scanner" eingeben und Umlaute ersetzen Java Basics - Anfänger-Themen 7
A Text teilen und Wörter zählen Java Basics - Anfänger-Themen 7
J Zahlen als Text übersetzen Java Basics - Anfänger-Themen 6
F Erste Schritte Label Text vor Methodenaufruf setzen Java Basics - Anfänger-Themen 17
R Text Pane Aktualisierung erst nach JOptionPane Java Basics - Anfänger-Themen 10
I BufferedReader Text-Datei einlesen??? Java Basics - Anfänger-Themen 1
S Wort in Text suchen und ersetzen Java Basics - Anfänger-Themen 3
V Interface ich schäme mich das zu fragen, aber ich schaff nicht ein Text zu zentrieren :( [javaFX] Java Basics - Anfänger-Themen 6
M Input/Output Text auf Fenster zeichen Java Basics - Anfänger-Themen 2
W Klassen Fehler bei public void setLabelText(JLabel label, String text) Java Basics - Anfänger-Themen 11
Chava Testprojekt.Text.Image.Button Java Basics - Anfänger-Themen 4
Z JSlider - Text wird nich angezeigt Java Basics - Anfänger-Themen 0
A Problem mit set.Text und übergabe Java Basics - Anfänger-Themen 2
A Probleme mit equals und get.Text Java Basics - Anfänger-Themen 12
M Text innerhalb Anführungsstriche als "eins" auswerten Java Basics - Anfänger-Themen 5
V Text aus einer .txt dynamisch ins applet einpassen Java Basics - Anfänger-Themen 0
H Text durch Checkbox erscheinen lassen Java Basics - Anfänger-Themen 2
U markierten Text auf Zeichen zuvor/danach pruefen Java Basics - Anfänger-Themen 9
J Dienst zum Text kopieren und Variable hochzählen Java Basics - Anfänger-Themen 7
L Text verschlüsseln Java Basics - Anfänger-Themen 13
M Button mit Bild und Text Java Basics - Anfänger-Themen 2
V Text wüerfeln-Rekursiv Java Basics - Anfänger-Themen 4
S Text editors popularity among programmers Java Basics - Anfänger-Themen 0

Ähnliche Java Themen

Neue Themen


Oben