Witam. Mam do napisania program, ktory szyfruje/deszyfruje tekst za pomoca klucza. Zarowno tekst jak i klucz podaje uzytkownik. Szyfrowanie/deszyfrowanie realizujemy za pomoca tablicy 26x26 znakow:
A B C D E F G H I J K L M N O P R S T U W X Y Z
B C D E F G H I J K L M N O P R S T U W X Y Z A
C D E F G H I J K L M N O P R S T U W X Y Z A B
.
.
.
Y Z A B C D E F G H I J K L M N O P R S T U W X
Z A B C D E F G H I J K L M N O P R S T U W X Y
Przykładowe szyfrowanie tekstu LOREM IPSUM DOLOR SIT AMET kluczem PASSWORD:
1. W przypadku gdy klucz jest krotszy od szyfrowanego tekstu, nalezy go powielic:
LOREM IPSUM DOLOR SIT AMET
PASSW ORDPA SSWOR DPA SSWO
2. Szyfrowanie polega na podstawieniu liter tekstu jawnego przez litery z tablicy wg zasady:
a ) litera tekstu jawnego wyznacza kolumnie tablicy
b ) litera klucza wyznacza wiersz
Litera szyfrogramu lezy na przecieciu, przyklad:
LOREM IPSUM DOLOR SIT AMET
PASSW ORDPA SSWOR DPA SSWO
AOJWI WGVJM VGHCI VXT SEAH
3. Deszyfracja polega na wybraniu kolumny tablicy okreslonej poprzez odpowiednia litere klucza, a nastepnie odszukanie w niej litery szyfrogramu. W ten sposob okreslona litera wiersza jest litera tekstu jawnego:
PASSW ORDPA SSWOR DPA SSWO
AOJWI WGVJM VGHCI VXT SEAH
(np.dla pierwszego znaku : w kolumnie P szukamy A, lezy ona w wierszu L-L jest wiec poszukiwana litera)
dodaje ze jestem poczatkujaca i prosze o wyrozumialosc, a to ile udalo mi sie poskladac:
#include <iostream>
#include <cstdlib>
using namespace std;
void szyfruj(char *tekst,int *klucz)
{
int iPrzes;
for (int i=0; tekst[i] != '\0'; i++)
{
tekst[i] = ( tekst[i] + klucz[iPrzes] );
iPrzes ++;
cout << "wpisz tekst:";
cin>>iPrzes;
if(iPrzes == sizeof(klucz)) iPrzes;
break;
}
}
void deszyfruj(char *tekst,int *klucz)
{
int iPrzes;
for (int i=0; tekst[i] != '0'; i++)
{
tekst[i] = ( tekst[i] - klucz[iPrzes] );
iPrzes ++;
cout << "zaszyfrowany tekst:";
cin>>iPrzes;
if(iPrzes == sizeof(klucz)) iPrzes;
break;
}
}
int main(){
char test[30];
int iKlucz[3] ;
szyfruj(test, iKlucz);
cout << test << "\n" ;
deszyfruj(test, iKlucz);
cout << test << "\n" ;
return 0;
system("pause");
}