Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Дешифровка (метод цезаря)


Автор: http1 26.11.2013, 20:56
Код

#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 и остаток от деления записываю в массив


Далее расшифровка, помогите пожалуйста с ней, что нужно сделать с чтобы вывело коды текста который я зашифровываю с помощью массива кодового блокнота и шифрованного массива?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)