| Код | #include <iostream> #include <math.h> #include <fstream> #include <string> #include <fstream> #include <windows.h> using namespace std; int main () { SetConsoleCP(1251); SetConsoleOutputCP(1251); setlocale(LC_ALL,"rus"); char massim[1000], massimm[1000]; int sum,i,d1,j,q,k,p,d2,w,s,h; int a [1000], b [1000], c[1000], d[1000]; ifstream inFile; inFile.open ("кодовый блокнот.txt", ios::in); if(!inFile.is_open()) cout<<"Ошибка открытия кодового блокнота"; inFile.get(massim,1000,EOF); inFile.close(); d1=strlen(massim);
sum=0;j=0; i=0; do { i++; if(int(massim[i])!=' ')
sum=sum+int(massim[i]); else { a[j]=sum; sum=0; j++; } } while(i<d1);
for(q=0;q<j;q++) cout<< a[q]<<" "; cout << endl; cout << endl;
ifstream Second; Second.open ("2.txt", ios::in); if(!Second.is_open()) cout<<"Ошибка открытия текста для кодировки";
Second.get(massimm,1000,EOF); Second.close(); d2=strlen(massimm); p=0;k=0; do { b[k]=int(massimm[k]); k++; } while(k<d2);
for(w=0;w<k;w++) cout<< b[w]<<" "; cout<<endl; cout<<endl; s=0; for(i=0;i<k;i++) {
s=(a[i]+b[i])%256; c[i]=s; } for(h=0;h<i;h++) cout<< c[h]<<" "; cout<<endl; cout<<endl;
for(i=0;i<k;i++) {
s=(a[i]-c[i])%256; d[i]=s; } for(h=0;h<i;h++) cout<< d[h]<<" "; cout<<endl; cout<<endl;
system ("pause"); }
|
Вообщем беру кодовый блокнот, считываю его посимвольно, затем загоняю всего это в массив (разделяя пробелами при этом суммирую коды аски каждого слова), т.е. каждый элемент массива соответствует сумме кодов аски всех букв в нем
Второй цикл в нем я считаю коды текста,который хочу зашифровать и составляю массив, в котором каждый элемент (код аски включая пробелы)
Далее шифровка: к каждому элементу массива кодового блокнота я прибавляю элемент массива кодов текста,котороый хочу зашифровать. и их сумму делю на 256 и остаток от деления записываю в массив
Далее расшифровка, помогите пожалуйста с ней, что нужно сделать с чтобы вывело коды текста который я зашифровываю с помощью массива кодового блокнота и шифрованного массива? |