T
tuxbanker
Gast
Hallo Leute,
ich stehe vor folgendem Problem: Ich möchte eine Datei in einem exotischen, aber spezifizierten Format
parsen. Der Inhalt wirkt etwas kryptisch, was auch so richtig ist, weil die Datei zwar ein Klartextformat
ist, aber Schlüssel für eine gesicherte Kommunikation enthält.
Im Großen und Ganzen geht das Parsen ganz gut, allerdings ist ein schlauer Mensch
bei der Spezifizierung des Formats wohl auf die gloreiche Idee gekommen den Tag
für den öffentlichen Schlüssel einfach mit "ÖS", also mit einem Umlaut zu kennzeichnen.
Alle anderen Tags finde ich sofort, aber das ÖS macht probleme. Ich habe nun schon
versucht die entsprechenden Hex-Werte abzugleichen. Leider ohne Erfolg. Was mache
ich beim Einlesen der Datei falsch? Hier mein Code:
Die Tags "RD" und "DM" findet er ohne Probleme. Das ÖS überspringt er aber völlig.
Hoffe mal irgendwer kann mir weiterhelfen.
ich stehe vor folgendem Problem: Ich möchte eine Datei in einem exotischen, aber spezifizierten Format
parsen. Der Inhalt wirkt etwas kryptisch, was auch so richtig ist, weil die Datei zwar ein Klartextformat
ist, aber Schlüssel für eine gesicherte Kommunikation enthält.
...
uAåv™¿+}Ø5Ë[^M$?Ê}ƒ£p¨š÷Ï·DûzÍû³ŽÐW"‰ˆ ñ×#Be—ÄënÛj7ñŸüèfl@B
Q ~Ó·O.OmVÃæ¼?øy]füÝry˜ ázóÆžl÷?™
li4!]©u@œ~¡Ïð”+\í}>|ˆ;_"ÜvŒI}K´ŽaKr2’?Çi†&zá±i9@MÆ7›ðÊ2;þ¤EQnä¥îM NZ¡¦C
...
Im Großen und Ganzen geht das Parsen ganz gut, allerdings ist ein schlauer Mensch
bei der Spezifizierung des Formats wohl auf die gloreiche Idee gekommen den Tag
für den öffentlichen Schlüssel einfach mit "ÖS", also mit einem Umlaut zu kennzeichnen.
Alle anderen Tags finde ich sofort, aber das ÖS macht probleme. Ich habe nun schon
versucht die entsprechenden Hex-Werte abzugleichen. Leider ohne Erfolg. Was mache
ich beim Einlesen der Datei falsch? Hier mein Code:
Code:
RandomAccessFile in = new RandomAccessFile(filename, "r");
byte file[] = new byte[(int) in.length()];
// read full file
in.readFully(file);
for (int i = 0; i < file.length -1 ; i++) {
if ( (file[i] == 0x52 && file[i+1] == 0x44) || //RD
(file[i] == 0x44 && file[i+1] == 0x4D) ) //DM
{
// do something
};
else if (file[i] == 0xd6 && file[i+1] == 0x53){ //ÖS
// do something other
};
}
Die Tags "RD" und "DM" findet er ohne Probleme. Das ÖS überspringt er aber völlig.
Hoffe mal irgendwer kann mir weiterhelfen.