Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Verschlüsselungsmethoden

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ] [ 3 ] [ 4 ]
000
28.10.2005, 11:10 Uhr
~erpel
Gast


Hi Leute.
Könnt ihr mir ein paar Methoden zum Verschlüsseln von Textdateien nennne?
Es sollen keine vorgeschriebenen methoden verwendet werden, ich möchte meine eigene schreiben.
Ich habe das Problem, dass wenn ich für "e" ne "3" mache, der pc bei der entschluesselung nicht weiss, ob das ne originale "3" ist, oder n "e". Gibt es da irgendwelche leichten Lösungen?
danke.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
28.10.2005, 11:43 Uhr
ao

(Operator)



Zitat von ~erpel:
Ich habe das Problem, dass wenn ich für "e" ne "3" mache, der pc bei der entschluesselung nicht weiss, ob das ne originale "3" ist, oder n "e".

Na ja, die Abbildung muss schon "eineindeutig" sein, so nennt man das, wenn jeder Wert aus dem Definitionsraum (d.h. jedes Klartextzeichen) auf genau einen Wert im Bildraum (also Schlüsselzeichen) abgebildet wird und umgekehrt.
Eineindeutige Abbildungen sind z.B. XOR-Verknüpfungen oder Rotations-Codes. Du kannst auch eine zufällige Permutation des Zeichensatzes bilden und als Zuordnungstabelle verwenden.

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
28.10.2005, 13:10 Uhr
~erpel
Gast


aha, gut danke.
XOR hat das nicht was mit bismanipulation zu tun? Wäre dass zu schwer für einen anfänger oder kann ich mich damit ruhig mal beschäftigen?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
28.10.2005, 13:40 Uhr
ao

(Operator)


Kannst du ruhig mal tun. Das ist der Operator ^. Erklärungen und Beispiele gibts bergeweise im Web.

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
28.10.2005, 15:47 Uhr
~erpel
Gast


Also ich komme immer weiter im code. hab jetzt aber n generelles Problem, undzwar brauche ich eine funktion von ifstream, die mir sagt, wie viele zeichen meine datei enthält. Denn nach der Variable richte ich meine auslese-schleife, hier mal n Stück code:

C++:
for (int n = 0; n<=c; n++)
    {
        ifstream datei_l (pfad); //zum Lesen öffnen  
       //Funktion gesucht??? Variable c
        datei_l.seekg(n);        
        datei_l.get(original); //Zeichen holen          
        datei_l.close();
        //...
     }


danke!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
28.10.2005, 16:25 Uhr
~DoppleR
Gast


Die Datei solltest du schon vor dem Betreten der Schleife öffnen. Du kannst dann innerhalb der Schleife nach jedem Buchstaben nachfragen, ob das Ende der Datei erreicht ist:

C++:
#include <iostream>
#include <fstream>

int main() {
    using namespace std;
    char buchstabe;
    ifstream datei("test");
    if (datei.good()) datei >> buchstabe;
    while (datei.good()) {
    cout << buchstabe;
    datei >> buchstabe;
    };
    datei.close();

    return 0;
};


Außer good() gibt es auch andere Methoden wie fail(), eof() ... die dir Auskunft über den Zustand des Streams geben.

Mir ist keine Funktion bekannt, die direkt die Dateilänge zurückliefert. Du kannst dir mit der Methode von oben aber eine schreiben, indem du bei jedem Schleifendurchgang einen Zähler hochzählst. Für deine Zwecke ist das aber nicht empfehlenswert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
28.10.2005, 16:32 Uhr
~DoppleR
Gast


Kleiner Fehler: Statt

C++:
datei >> buchstabe;


benutze doch lieber

C++:
datei.get(buchstabe);


sonst lässt er die newlines weg.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
28.10.2005, 18:11 Uhr
~erpel
Gast


ok, danke. werd es ausprobieren.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
29.10.2005, 11:11 Uhr
~erpel
Gast


also die schleife sieht jetzt so bei mir aus:

C++:
    ifstream datei_l (pfad); //zum Lesen öffnen  
    ofstream datei_s (pfad,ios::in); //zum Schreiben öffnen
    
    while ( datei_l.good())
    {
        
        datei_l.seekg(n);
        
        datei_l.get(original); //Zeichen holen          
        
        
        switch (original)
        {
            case 'a' : bild = 'r'; break;
            case 'b' : bild = '@'; break;
            case ' ' : bild = '_'; break;
            
        }
        cout << bild;    

        
        datei_s.seekp(n);
        datei_s << bild;
        n++;
    }
    datei_l.close();
    datei_s.close();


Das Problem ist, dass die Schleife immer 1mal zuviel ausgeführt wird. Wie kan ich das verhindern? Wenn in der Datei nur ein 'a' steht, ist danach 'rr' drin. Mein counter fängt bei 0 an, dass muss ja auch so sein.
danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
29.10.2005, 18:55 Uhr
~erpel
Gast


hmm schade.
Wenns nicht anders geht, muss ich halt nach der Schleife das letzte Zeichen wieder löschen.
Was gibt es denn da für Befehle?
danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ] [ 3 ] [ 4 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: