2 Fragen zu Projekt Steganographie



  • Tach,

    wir müssen in der schule ein Steganographie Programm schreiben, alles funktioniert nur ich weis einfach keine abbruchbedingung in der Schleife zum Auslesen.
    Ich lese aus dem Bild(.bmp) immer 8 Bytes aus und wandel durch die LSBs es zu einem Zeichen um.
    Da man aber nicht weis wie lange der Text ist der verschlüsselt wurde, brauche ich wie oben erwähnt eine geeignete abbruchbedingung.

    Auserdem wollte ich noch fragen ob es eine Funktion in C++ gibt, die eine geöffnete Datei unter einem anderen Namen abspeichert, also als Sicherheitskopie.

    Hoffe ihr könnt mir helfen 🙂 .

    MfG



  • Erstens: Die Abbruchbedingung mußt du dir schon selber definieren. Wenn du dich am C-Stil orientieren willst, kannst du am Ende des versteckten Textes ein NULL-Byte einkodieren, das du dann umgekehrt wieder auslesen kannst. Alternativ besteht die Möglichkeit, in den ersten 2..4 Byte des Textes zu speichern, wie lang er werden soll.

    Zweitens: Auf Standardebene:

    ifstream in("src.xxx");
    ofstream out("tgt.xxx");
    out<<in.rdbuf();
    

    Oder du schaust dir an, was dein OS bietet (CopyFile o.ä.)



  • Danke für deine Hilfe, des mit dem speichern wie lang der Text ist werd ich so machen, ist eine super idee. ^^

    Hab jetzt mal des Probiert mit dem Quellcode von dir nur funktioniert des irgendwie nich, hab mir die Hilfe mal durchgelesen aber blick da mit ifstream und ofstream ned so durch.
    Hier mal mein Quellcode

    #include <iostream.h>
    #include <fstream.h>
    int main()
    {
    ifstream in("c:\test.bmp");
    ofstream out("c:\text33.bmp");
    out<<in.rdbuf();
    }
    


  • Und woran scheitert das? (außer der Tatsache, daß Standard-Header keine .h-Endung haben sollten und den Namensraum std:: verwenden?)

    PS: Vielleicht hilft mein Magazin-Artikel über IO-Streams dir ja auch in die richtige Richtung 😉



  • Ähm^^, wir haben des bis jetzt nur so gelernt, also ohne std:: und mit Standard header .h Endung.

    Hab auch noch bisl mit rumgetestet bekomm des aber einfach nicht hin 😞 .



  • Dann richte deinem Lehrer von uns aus, daß er hinter dem Mond lebt 😉

    (und wenn du Hilfe erwartest, wäre eine genauere Meldung als "klappt nicht" durchaus angebracht)


Anmelden zum Antworten