algorytm szyfrowania XOR

0

otóż zacząłem sobie pisać algorytm szyfrowania xor i przystawiło mi na pętli szyfrującej, jak ją zapisać?
pętla ma porównywać znaki z ciągu i z klucza, jeżeli znaki są takie same to wpisuje do pliku 0 a jeśli różne to 1

int main(int argc, char *argv[])
{
    cout<<"Szyfrowanie tekstu algorytmem szyfrowania XOR"<<endl<<endl;
    char znak;
    char zero='0';
    char jeden='1';
    char * ciag = new char[255];
    char * klucz = new char[255];

    cout<<"podaj ciag znakow bez spacji! ";
    cin>>ciag;
    cout<<"podaj klucz ";
    cin>>klucz;

    ofstream wplik;
    wplik.open("zaszyfrowany.txt");

                                                                //pêtla szyfrujaca????

    return 0;
}
0

Choćby naiwne porównywanie. Robisz 2 pętle - jedna po ciągu, druga po kluczu (zagnieżdżone). Jesli znaki są takie same to wpisujesz 0, jak nie to wpisujesz 1. W czym problem?
Tu możesz sobie poczytać więcej http://www.algorytm.org/kryptografia/algorytm-xor.html

0

Ale co ty chcesz właściwie zrobić? Przecież porównanie ciągu z kluczem jest.. bezsensowne?

0

#include <cstdlib>
#include <iostream>
#include <fstream>

using namespace std;

int main(int argc, char *argv[])
{

cout<<"Szyfrowanie tekstu algorytmem szyfrowania XOR"<<endl<<endl;
char znak;
int szyfr[255];
int i;
char * ciag = new char[255];
char * klucz = new char[255];

cout<<"podaj ciag znakow bez spacji! ";
cin>>ciag;
cout<<"podaj klucz ";
cin>>klucz;

ofstream wplik;
wplik.open("zaszyfrowany.txt");


 for (i=0;ciag[i]=' ';i++)
 {
    if (ciag[i]==klucz[i])
    {
    szyfr[i]=0;
    }
    else
    {
    szyfr[i]=1;
    }
 }



return 0;

}
coś takiego wymyśliłem...

dlaczego bezsensowne? a jest jakiś inny sposób żeby podejść do tego tematu?

0

Źle to masz. Poczytaj lepiej o tym algorytmie na czym on polega. Zresztą zanim się za to weźmiesz to naucz się obsługi plików, tablic, pętli....

0

Szyfrowanie danych - XOR

Kiedy klucz jest ciągiem znaków po prostu xorujesz każdy znak ciągu szyfrowanego po kolei z każdym znakiem klucza.

Btw.:

otóż zacząłem sobie pisać algorytm szyfrowania xor i przystawiło mi na pętli szyfrującej, jak ją zapisać?
pętla ma porównywać znaki z ciągu i z klucza, jeżeli znaki są takie same to wpisuje do pliku
0 a jeśli różne to 1

W pierwszej linii twierdzisz, że chcesz szyfrować tekst algorytmem szyfrowania xor, w drugiej piszesz o porównywaniu dwóch stringów i jako efekt wyświetleniu tylko 0 lub 1.
Zastanów się co chcesz zrobić. Prawdopodobnie nie rozumiesz treści zadania.

EDIT:
i jeszcze jedno:
for (i=0;ciag[i]=' ';i++)
Twoja pętla się nie kończy i przypisujesz każdemu znaku ciągu ' ' i takie coś sobie xorujesz...

1 użytkowników online, w tym zalogowanych: 0, gości: 1