kostenloser Webspace werbefrei: lima-city


Datei öffnen, bearbeiten, speichern

lima-cityForumProgrammiersprachenJava

  1. Autor dieses Themas

    computerkurs2011

    Kostenloser Webspace von computerkurs2011

    computerkurs2011 hat kostenlosen Webspace.

    Hallo liebes Lima-City Forum,

    ich bin gerade dabei in Java eine Verschlüsselungssoftware zu schreiben. Soweit funktioniert auch alles, die Verschlüsselung klappt, mein selbst geschriebener Algorithmus ist sogar schneller als der fertige von Java, allerdings bekomm ich es einfach nicht hin eine Datei zu öffnen, sie zu verschlüsseln, sie zu speichern, dann wieder zu öffnen, zu entschlüsseln und sie dann zu öffnen.

    Verschlüssle und Entschlüssle ich eine *.jpg Datei, dann gibt es Formatierungsfehler in der Bild-Datei, wenn ich sie mir in Notepad++ angucke, dann gibt es an manchen Stellen „?“ (Fragezeichen), die es in der Originaldatei nicht gibt. Warum ist das so? Wenn ich eine *.txt Datei verschlüssle und wieder entschlüssle wird sie korrekt dargestellt. Zur besseren Übersicht konvertiere ich meine verschlüsselte Datei in Base64 und natürlich später auch wieder zurück.

    //Konvertieren in BASE64-String
    	String encryptedString = Base64.getEncoder().encodeToString(encrypted);

    //BASE64-String Konvertieren in Byte-Array
           byte[] decoded = Base64.getDecoder().decode(text);

    //Datei auswählen
           File datei = new File(speicherort);
           
           //Datei auslesen
           FileInputStream fis = new FileInputStream(datei);
           byte[] encodedKey = new byte[(int) datei.length()];
           fis.read(encodedKey);
           fis.close();       
           
           String data = new String(encodedKey);
           
           String decodedData = aesVerschluesseln(data, key);
    <-- Datei öffnen und verschlüsseln
    //Datei auswählen
           File datei = new File(speicherort);
           
           //Datei auslesen
           FileInputStream fis = new FileInputStream(datei);
           byte[] encodedData = new byte[(int) datei.length()];
           fis.read(encodedData);
           fis.close();
           
           String data = new String(encodedData);
           
           String entschluesselt = aesEntschluesseln(data, key);
    <-- Datei entschlüsseln und speichern

    Was mache ich falsch. Ich arbeite sonst normalerweise in Java nicht mit Dateien, sondern schreibe eher Simulationen oder Verschlüsselungen die nur theoretisch Zeichenketten verschlüsseln, aber nicht praktisch direkt eine Datei verschlüsseln.

    Und noch eine Frage, ist es ratsam Dateien so zu öffnen und zu speichern wie ich das jetzt gerade tue, den ich will den Arbeitsspeicher nicht als Maß für die maximale Dateigröße nehmen die verschlüsselt werden kann. Denn ich will bspw. auf einem Rechner mit 2GB RAM auch Filme die 6GB groß sind verschlüsseln können. Von der dafür notwendigen Zeit mal ganz abgesehen.

    Vielen Dank für eure Hilfen :)
    cpk2011

    Beitrag zuletzt geändert: 21.7.2015 19:18:26 von computerkurs2011
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    1) Du liest Bytes, aber machst einen String daraus. Dabei findet ein Encoding/Decoding statt, und dabei kann es bei Binärdaten zu Fehlern kommen. Lösung: verarbeite immer
    byte[]
    -Daten anstatt
    String
    s.

    2) Man liest nur kleine Dateien vollständig ein. Ansonsten verarbeitet man Dateien blockweise: 1 Block (z.B. 512 Bytes) lesen, verarbeiten, schreiben. Und dann der nächste Block usw …
  4. Autor dieses Themas

    computerkurs2011

    Kostenloser Webspace von computerkurs2011

    computerkurs2011 hat kostenlosen Webspace.

    Vielen Dank, es hat alles super geklappt :prost:
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!