Skocz do zawartości
mouk

c++ i XOR-owanie

Rekomendowane odpowiedzi

Mam taki maly programik:

 

#include <iostream.h>

#include <fstream.h>

#include <stdio.h>

#include <string.h>

 

 

class szyfrowanie{

private:

char* tekst; //wskaznik do chara

 

public:

szyfrowanie(){ //konstruktor

tekst=new char[255]; // nowa tablica znakowa (string)

}

void szyfruj(); // deklaracje funkcji

void zczytaj();

void zapisz(char*);

void podglad();

void deszyfruj(char*);

};

 

void szyfrowanie::deszyfruj(char *plik){

FILE *file;

 

char* klucz=new char[255];

file = fopen(plik, "r");

fread(tekst,sizeof(tekst),1,file);

 

cout<<"Wpisz klucz do odszyfrowania: ";

cin>>klucz;

for(int i=0;i<strlen(tekst);i++){ // petla dla wszystkich liter w tekscie

tekst=tekst^klucz[i%strlen(klucz)]; //z-xor-owanie kazdej litery z odpowiednim znakiem klucza

cout<<tekst;

}

 

 

cout<<endl;

 

}

 

void szyfrowanie::zczytaj(){ // zczytywanie tekstu z pliku

cout << "Podaj tekst do zaszyfrowania -> ";

cin >> tekst;

 

}

 

void szyfrowanie::zapisz(char *plik){

FILE *file; // definicja wskaznika do typu FILE

file = fopen(plik, "w"); //wskazanie wskaznika file do nowego obiektu (otwarty plik w trybie czytania)

fwrite(tekst, sizeof(tekst), 1, file);

fclose(file); //zamkniecie pliku

cout<<"Zapisano tekst do pliku "<<plik<<"n";

}

 

void szyfrowanie::szyfruj(){

char* klucz=new char[255];

cout<<"Wpisz klucz do szyfrowania: ";

cin>>klucz;

for(int i=0;i<strlen(tekst);i++){

tekst=tekst^klucz[i%strlen(klucz)];

}

 

}

 

 

void szyfrowanie::podglad(){ // podglad tekstu

cout<<"nTEKST ("<<strlen(tekst)<<"):n-----------n"<<tekst<<"n-----------nn";

}

 

 

void main()

{

szyfrowanie a;

a.deszyfruj("1.txt");

a.zczytaj();

a.szyfruj();

a.zapisz("1.txt");

}

 

 

 

 

 

Program sie ladnie kompiluje, ale....

ale niestety przy probie deszyfrowania dobrze mi deszyfruje tylko pierwsze 4 znaki. Czy ktos wie co źle robię?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...