Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Code ist kaputt

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 <
000
05.09.2004, 12:47 Uhr
RedEagle



Ich habe ein Tolles Tutorial gefunden, zum thema xor - verschlüsselung. Leider ist der Beispielcode nicht so gut


C++:
#include <iostream>
#include <conio.h>

using namespace std;

int main(){
    char s[256] = "";
    char p[256] = "";
    cout << "Source: ";
    cin >> s;
    cout << "Pass: ";
    cin >> p;
    /* Wir verschlüsseln den Text, indem wir ihn jeden Buchstaben des
           Textes mit einem Buchstaben des Passwortes verschlüsseln. */

    int j=0;
    for(int i=0;i=strlen(p))
            j=0;
    };
    cout << "Crypted: " << s;
    /* Nun entschlüsseln wir den Text wieder, indem wir die Verschlüsselung
           umkehren und den jeden Buchstaben des verschlüsselten Text einfach wieder
           mit jedem Buchstaben des (neuen) Passwortes XOR-Verknüpfen. */

    j=0;
    for(int i=0;i=strlen(p))
                j=0;
    };
    cout << "Decrypted: " << s;
    getch();
    return 0;
};


(1:1 Kopie vom Tutorial)

Ganz besondes Probleme habe ich (und mein Kompiler (DEV-CPP)) mit den for-schleifen.
kann bir bitte jemand die for-schleifen erklären und korrigeiren?

ps.: was mach strlen(); ??
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
05.09.2004, 14:48 Uhr
(un)wissender
Niveauwart


Schmeiss den Code weg, der komiliert nicht, ist semantisch fehlerhaft und tut auch nichts.
strlen zählt die Bytes mit zum Nullbyte, ausgeschrieben string_length.

Ein naiver Ansatz, der funktioniert:


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

int main(){

    std::string  password, input;
    std::cout << "Source: ";
    std::cin >> input;
    std::cout << "Pass: ";
    std::cin >> password;
    /* Wir verschlüsseln den Text, indem wir ihn jeden Buchstaben des
           Textes mit einem Buchstaben des Passwortes verschlüsseln. */

    for(unsigned i = 0; i < input.size(); ++i)
    {
        input[i] = input[i] ^ password[i % password.size()];
    }

    std::cout << "Crypted: " << input << std::endl;
    /* Nun entschlüsseln wir den Text wieder, indem wir die Verschlüsselung
           umkehren und den jeden Buchstaben des verschlüsselten Text einfach wieder
           mit jedem Buchstaben des (neuen) Passwortes XOR-Verknüpfen. */

    for(unsigned i = 0; i < input.size(); ++i)
    {
        input[i] = input[i] ^ password[i % password.size()];
    }
    
    std::cout << "Decrypted: " << input;
    getchar();
    return 0;
};



Allerdings fehlen hier noch Fehlerbehandlung, usw.
--
Wer früher stirbt ist länger tot.

Dieser Post wurde am 05.09.2004 um 14:57 Uhr von (un)wissender editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
05.09.2004, 20:09 Uhr
RedEagle




jetzt sind auch die xor - zeichen (^) drin die ich gesucht hatte , und die for-schleifen sind auch verständlich

--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


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: