Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2013, 21:44   #1
Александр Мостовой
Новичок
Джуниор
 
Регистрация: 18.12.2013
Сообщений: 2
Радость Помогите разобрать шифрование. Как программа шифрует текст? Т.е. что она для этого делает?

//---------------------------------------------------------------------------
#include<iostream.h>
#include<conio.h>
#include<fstream.h>
#include<string.h>
#include<math.h>
#include"rus.h"
#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused
void main()
{
char* kluch; //резервируем адрес для ключевого выражения
ifstream inp("Input.txt");
ofstream out("Output.txt");
if(!inp)
{
cout<<Rus("ОТСУТСТВУЕТ ФАЙЛ Input.txt");
getch();
exit(1);
}
cout<<Rus("ВВЕДИТЕ КЛЮЧ (БЕЗ ПРОБЕЛОВ)");
cin>>kluch;
int n=strlen(kluch); //длина ключа
int b,j,i=0;
for(int k=0;k<n;k++)
{ //преобразование символов ключа в прописные
b=kluch[k];
if(b<=-33&&b>=-64)b+=32; //A->а,Б->б,...(русский алфавит)
if(b==-81||b==-88||b==-86)b+=16; //Ї->ї,Є->є,Ё->ё
if(b<=90&&b>=65)b+=32; //A->a, B->b,...(английский )
kluch[k]=b;
}
char temp,buffer=NULL;//buffer-считываемый символ,temp- преобразованный символ

while(!inp.eof()) //пока не достигнут конец файла
{
inp.read((char*)&buffer,sizeof(buff er));//считываем очередной символ
if(buffer==NULL)break;// если файл пустой
b=buffer;
//преобразование символов исходного текста в заглавные
if(b>=-32&&b<=-1)b-=32; //а->А,б->Б,...(русский алфавит)
if(b==-65||b==-72||b==-70)b-=16; //ї->Ї,є->Є,ё->Ё
if(b>=97&&b<=122)b-=32; //a->A, b->B,...(английский )
buffer=b;

j=fmod(i,n); // переменная j циклически изменяется от 0 до n-1
temp=buffer^kluch[j];// применяем операцию "исключающее ИЛИ"
out.put(temp); //записываем кодированный символ
i++; //переходим к следующему символу ключевого слова
buffer=NULL;
}

inp.close();
out.close();
cout<<Rus("ЗАШИФРОВАННЫЙ ТЕКСТ НАХОДИТСЯ В ФАЙЛЕ Output.txt");
getch();
}
//---------------------------------------------------------------------------

Последний раз редактировалось Александр Мостовой; 20.12.2013 в 21:47. Причина: Неполный вопрос.
Александр Мостовой вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разобрать прогу, пожалуста Dimka-novitsek Общие вопросы C/C++ 4 29.11.2013 17:10
Помогите разобрать со String MasterofCDM Общие вопросы Delphi 12 06.06.2009 14:53
помогите задачу разобрать Настаська Помощь студентам 2 26.11.2008 16:16
Помогите разобрать прогу! Mute Общие вопросы C/C++ 2 28.12.2006 11:34