Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++ Builder

Войти
Регистрация
Восстановить пароль
 
KatrinSnow
0 / 0 / 0
Регистрация: 14.05.2014
Сообщений: 17
#1

Шифрование и Дешифрование бинарного файла с помощью подстановочного алфавита - C++ Builder

26.05.2015, 19:47. Просмотров 602. Ответов 2
Метки нет (Все метки)

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

Например:
Исходный алфавит: абвгдежз……………..
Подстановочный: вгдежзик……………..
Тогда последовательность символов «где» заменяется на «ежз».
При расшифровании производится обратная замена символов.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.05.2015, 19:47
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Шифрование и Дешифрование бинарного файла с помощью подстановочного алфавита (C++ Builder):

Шифрование\Дешифрование - C++ Builder
Доброго времени суток. Необходимо составить программу, реализующую шифрование и дешифрование с помощью своего метода. Метод я...

Шифрование / дешифрование файлов - C++
есть ли стандартные средства шифрования\дешифрования файлов? если нет, какие библиотеки посоветуете и где их найти

Запись бинарного файла - C++ Builder
Здравствуйте ув. форумчане. Столкнулся с такой проблемой. У меня стоит Rad Studio 10 Seatle и я пытаюсь записать переменные типа byte в...

Чтение бинарного файла - C++ Builder
Здравствуйте! Не могу прочитать бинарный файл, уже весь интернет обшарил, по пять страниц в гугле, все примеры перепробовал, но никак не...

Создание бинарного файла - C++ Builder
Ребята, подскажите как создать такие файл , что то я вообще запутался с этими бинарными файлами... Знаю что просто

Чтение бинарного файла - C++ Builder
Здравствуйте! Я пробую прочитать бинарный файл от CAD системы (он представляет из себя архив в иде .prt) Пробую открыть его как текстовый...

2
SergeyKu
107 / 48 / 16
Регистрация: 24.10.2012
Сообщений: 56
27.05.2015, 00:14 #2
Можно два map-а использовать
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <map>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
std::map<char, char> map_encrypt, map_decrypt;
String File1 = "C:\\1.txt";
String File2 = "C:\\2.txt";
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
  //Инициализация
  for(int i = 0; i < 256; i++)
  {
      map_encrypt[i] = i + 2;
      map_decrypt[i + 2] = i;       
  }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  //Шифрование
  TFileStream *fs_in, *fs_out;
  fs_in = new TFileStream(File1, fmOpenRead);
  if(fs_in != NULL)
  {    
      fs_out = new TFileStream(File2, fmCreate);
      if(fs_out != NULL)
      {
          char buff[1024];
          int read_bytes;
          while(true)
          {
              read_bytes = fs_in->Read(buff, sizeof(buff));
              if(read_bytes == 0)
                  break;
              for(int i = 0; i < read_bytes; i++)
                  buff[i] = map_encrypt[buff[i]];
              fs_out->Write(buff, read_bytes);    
          }
          delete fs_out;
          fs_out = NULL;
      }
      delete fs_in;
      fs_in = NULL;
  }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
  //Дешифрование
  TFileStream *fs_in, *fs_out;
  fs_in = new TFileStream(File2, fmOpenRead);
  if(fs_in != NULL)
  {    
      fs_out = new TFileStream(File1, fmCreate);
      if(fs_out != NULL)
      {
          char buff[1024];
          int read_bytes;
          while(true)
          {
              read_bytes = fs_in->Read(buff, sizeof(buff));
              if(read_bytes == 0)
                  break;
              for(int i = 0; i < read_bytes; i++)
                  buff[i] = map_decrypt[buff[i]];
              fs_out->Write(buff, read_bytes);    
          }
          delete fs_out;
          fs_out = NULL;
      }
      delete fs_in;
      fs_in = NULL;
  }   
}
//---------------------------------------------------------------------------
0
KatrinSnow
0 / 0 / 0
Регистрация: 14.05.2014
Сообщений: 17
27.05.2015, 13:57  [ТС] #3
Знаете, а мне без формы надо)) Просто чтобы текст вводить и его программа шифровала
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2015, 13:57
Привет! Вот еще темы с ответами:

Чтение бинарного файла - C++ Builder
Добрый день, ребята помогите разобраться с проблемой, читаю бинарный файл с последующим отображением содержимого в компоненте Memo. При...

Ошибка открытия бинарного файла - C++ Builder
Всем доброго времени суток, помоги пожалуйста обойти Ошибку: &quot;открытия бинарного файла, файл уже открыт&quot;. Дело в том что у меня есть два...

RNGCryptoServiceProvider или шифрование, дешифрование данных с помощью ключа и вектора (соль) - C#
Добрый день, форумчане! На php имеется такой код: //Создание рандомного вектора $vector =...

Шифрование\дешифрование файла - Assembler
Помогите пожалуйста сделать прогу, которая шифрует -дешифрует по следующему алгоритму: из файла считывается столько байт, сколько байт...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru