Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Шифрование txt

49K
22 ноября 2009 года
dapsssss
8 / / 02.11.2009
Программка записывает в txt слова через запятую, а другая программмка берёт эти слова из этого тектовика. Нужно зашифровать текст таким образом, чтобы его потом можно было прочитать другой программкой.. как осуществить шифрование и последующее дешифрование данных?Метод абсолютно любой, главное чтобы визуально эти данные в текстовике не читались.... Помогите пожалуйста! Направьте в нужное русло... Желательно сходничек или тыкните в тему с этим. Я искал ничего не нашёл... Буду благодарен!!!
12K
22 ноября 2009 года
Ghox
297 / / 26.07.2009
Насчет примера исходника.
В разделе "Исходники" сайта есть довольно много примеров шифровальных программ:
http://sources.codenet.ru/?cid=17

[COLOR="Silver"]А то что там насчет взлома, ИМХО надо бы оттуда удалить.[/COLOR]
53K
30 ноября 2009 года
Pala4
10 / / 30.11.2009
В данном коде приведён пример циклического кодирования, причём я тут использую таблицу АСКИ, соответствие символов их числовым значениям.
Код:
#include <vcl.h>
#include <math.h>
#pragma hdrstop
#include "Unit1.h"
//------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int iDLINA, iDLTEXT;
char * chRes, * chTEXT;
//------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//------------------------------------------------------------------------
/*---------------Кодирование файла формата TXT---------------------*/
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   OpenDialog1->Execute();

   TFileStream * FirstFi = new TFileStream(OpenDialog1->FileName,fmOpenRead); // Cоздаём поток для работы с выбранным файлом
   iDLTEXT = FirstFi->Size; // Размер файла
   chTEXT = new char[iDLTEXT]; // Создание символьного массива размером с файл
   FirstFi->ReadBuffer(chTEXT,iDLTEXT); // Запись файла в массив из потока
   FirstFi->Free(); //Освобождение потока

   TFileStream * Fi=
        new TFileStream(ExtractFileDir(Application->ExeName)+"\\Vacabulary.txt",fmOpenRead); // поток для работы с файлом Vacabulary.txt в котором записаны различные символы (т.е. алфавит), для кодирования файла. Например: ПАЛА4дgfjbklroswdтчщшцфийэюьъ.
   iDLINA = Fi->Size;
   chRes = new char[iDLINA];
   Fi->ReadBuffer(chRes,iDLINA);
   Fi->Free();

   int iSum, iSumm=0;
   for(int j=1;j<(iDLINA+1);iSumm+=(unsigned char)chRes[j++]) // Извратил немного код :)
   iSum=iSumm%256; // Вобщем получаем ключ алфавита

   for(int i=0;i<(iDLTEXT+1);i++)
   chTEXT = div((unsigned char)chTEXT+iSum,256).rem; // непосредственно кодировка текста

   int iFile1Handle = FileCreate(ExtractFileDir(Application->ExeName)+"\\Files for C and EC\\CODINGTEXT.txt"); //Создание файла
   FileWrite(iFile1Handle, chTEXT, iDLTEXT); // Запись в файл кодированного текста
   FileClose(iFile1Handle); // ноу коммент
}
//------------------------------------------------------------------------
/*--------------Декодирование файла формата TXT--------------------*/
void __fastcall TForm1::Button2Click(TObject *Sender)
{
   OpenDialog1->Execute();
   TFileStream * FirstFi = new TFileStream(OpenDialog1->FileName,fmOpenRead);
   iDLTEXT = FirstFi->Size;
   chTEXT = new char[iDLTEXT];
   FirstFi->ReadBuffer(chTEXT,iDLTEXT);
   FirstFi->Free();

   TFileStream * Fi=
        new TFileStream(ExtractFileDir(Application->ExeName)+"\\Vacabulary.txt",fmOpenRead);
   iDLINA = Fi->Size;
   chRes = new char[iDLINA];
   Fi->ReadBuffer(chRes,iDLINA);
   Fi->Free();

   int iSum, iSumm=0;
   for(int j=1;j<(iDLINA+1);iSumm+=(unsigned char)chRes[j++])
   iSum=iSumm%256;

   for(int i=0;i<(iDLTEXT+1);i++)
      {
      if ((unsigned char)chTEXT<=iSum) chTEXT = (256+(unsigned char)chTEXT)-iSum;
      else chTEXT = (unsigned char)chTEXT-iSum;
      }

   int iFile2Handle = FileCreate(ExtractFileDir(Application->ExeName)+"\\Files for C and EC\\ECODINGTEXT.txt");
   FileWrite(iFile2Handle, chTEXT, iDLTEXT);
   FileClose(iFile2Handle);
}
//------------------------------------------------------------------------
/*-----------------Завершение работы программы----------------------*/
void __fastcall TForm1::Button3Click(TObject *Sender)
{
Application->Terminate(); // Завешение работы приложения
}
//------------------------------------------------------------------------

Надеюсь помог. Успехов. :)
311
30 ноября 2009 года
plastictown
309 / / 08.01.2006
Можно записать код каждого символа в двоичной системе. :D
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог