- •1. Цель работы
- •2. Требования к программам шифрования и дешифрования
- •2.1. Требования к формированию файлов
- •3. Терминология и метод шифрования
- •3.1 Шифрование методом простой замены
- •6. Укрупненная структурная схема программы дешифрования
- •6.1. Код программы дешифрования
- •7. Исходный текст
- •7.1. Зашифрованный текст
- •7.2. Дешифрованный текст
- •8. Скриншоты выполнения программ
6. Укрупненная структурная схема программы дешифрования
6.1. Код программы дешифрования
#include <iostream>
#include <stdio.h>
#include <conio.h>
using namespace std;
void main()
{
setlocale(0, "");
FILE *input, *output;
const int reglen=17, buflen=1000, inpathlen=1001, outpathlen=1001;
int reg[reglen], regbuf, buffer[buflen], i, j, counter=0;
char inpath[inpathlen], outpath[outpathlen], c;
printf("Введите путь к файлу, который был зашифрован (до 1000 символов):\n");
for (i=0; i<inpathlen; i++)
{
inpath[i]=getche();
if (inpath[i]==13) {break;};
};
inpath[i]='\0';
printf("\nВведите путь хранения дешифрованного файла (до 1000 символов):\n");
for (i=0; i<outpathlen; i++)
{
outpath[i]=getche();
if (outpath[i]==13) {break;};
};
outpath[i]='\0';
input=fopen(inpath, "r");
output=fopen(outpath, "a+");
if (input==NULL)
{
printf("\nОшибка при открытии файла");
}
else if (output==NULL)
{
printf("\nОшибка при создании файла");
}
else
{
printf("\n\nВведите ключ из 17 символов (в конце ввода нажмите Enter):\n");
for (i=0; i<reglen; i++)
{
c=getche();
reg[i]=static_cast<int>(c);
if (i==reglen-1) {break;};
};
printf("\nИдёт обработка файла...");
for (i=0; i<buflen; i++)
{
if (!feof(input)) {fscanf(input, "%c", &buffer[i]); counter++;};
};
for (i=0; i<counter; i++)
{
buffer[i]=buffer[i]^reg[0];
regbuf=reg[0]^reg[1]^reg[2]^reg[3]^reg[7]^reg[12]^reg[14];
for (j=0; j<reglen; j++)
{
reg[j]=reg[j+1];
};
reg[reglen]=regbuf;
};
for (i=0; i<counter-1; i++)
{
fprintf(output, "%c", buffer[i]);
};
};
printf("\nВыполнено.");
fcloseall();
getch();
};
7. Исходный текст
В нашу задачу не входит обосновать какое-либо из существующих или предложить новое понимание этого термина. В аспекте настоящего исследования более существенно попытаться определить его отношение к некоторым другим базовым понятиям, в частности к понятию языка. Здесь можно выделить два подхода. Первый: язык мыслится как некоторая первичная сущность, которая получает материальное инобытие, овеществляясь в ТЕКСТЕ (См. определение М.-А.-К.Холидея: "Текст — это язык в действии" — Прим. Лотмана). При всем разнообразии аспектов и подходов здесь выделяется общая презумция: язык предшествует ТЕКСТУ, ТЕКСТ порождается языком… Даже в тех случаях, когда подчеркивается, что именно ТЕКСТ составляет данную лингвисту реальность и что любое изучение языка отправляется от ТЕКСТА, речь идет об эвристической, а не онтологической последовательности: поскольку в само понятие ТЕКСТА включена осмысленность, ТЕКСТ по своей природе подразумевает определенную закодированность.
7.1. Зашифрованный текст
іW€’ЊЉUЋЏ”Ѓ„—FЉЌJ.Ћ›ѓ'Ѓч—+џ…;ћ’:3>щњ=-Ћ•N?9ЋЊя љэ!…€‘Ѓ<•‰!7:’д%%‰ю8#•Ѓ27™Џ,…з8<*.6W'Љ73*>2 >C*$Ѓ›•яњ•Ѓ3‡‰&ьйҐп5‘Џ…Љ8A„0ћ!ЉЉ&=„R>љђ†ЊЌ19‡21Ќж’†љ*•дљ‡“&Ќ1Ћ-ЃЃу-%7ѓ‹љ‹;ѓ”г–;,<њ=4‹65F›љ?Fѓ1.;),ѓњ.\;е#ћ•%=5Ќ„.B‘‚љ“7•F‘(,•<1%AЏЃђ:'’)(йC€X/њ'>‚/Њ…%ы=г—њЏ!*.-H*7—:€BEЁ8!"<л8”"'ћG*72†"…2њй–)„E/–.%?(“ечі&,.’•AZ.>Ќ—ч63/•Ђ8ћ•B7њ™б‡Ђ*!џ’8•ќG&<–ЂџЂѓќ›P‘&†%0љЏћдM=‹Ѓћ ?‘т,5:)•&=3[29Ђ‘/#Ћ$’Ђ–ђ_…+•ђѓ…ђ-Yж•’љ‚… >ќ”ЋЃ—Zќ[ЎЇ І Ѕ[г8аб“)4/2<$‰%‡'\DJЈXJсЄ"*;’;[эCћ*%ЏмыжЂџ‡м;‰"1\,N>€њ495!.муDCµ 7‘GцЇ›;„ќ"ЏгJч‡ћп-Љ,5г‰".‡66990њ*ЌX?!ѓ&9‹4)п&H8‹Ѓ5$‚ќ,мЉ†!Њ*м?–:Ќ&:›"€R!=ќ б:1?7Ћ›.“ьN)›€Љ]<ђЋ„'…’+$‘6љR»ўўѕ§_юіЁя1"0‹•ђ<9‚ѓ”д.‚'‰—њгL±&:,T!G€&5Tћ?™Љ4%”Yъ/6‰–$RЊ‘Ћ.Џ!)>„'Њ;.ЂTг:ѓ0\’–‘ќ‚ЋмЇѕы„.„/=‚ђ6:џд>Љ!‡џ2V?"3&/37( л5&џ"“*+‹==L…г'њ*V!™ )#K—&‚ђ)џ‘;V:&2Џ-[;76•1†‚Џђ>?J€%сј« лFќђ”‰рЃ<'*в”‘^3"љ<ЉЂ'Ћљ„‹+;Z\‘б‹‚]‘‰.њ9™џ<џљ‹Њ4/э'8—Ќ››‘9•’ЂЊ™0?Ѓ€€KP%ѓ819Њ!7г8@‡:21M/8„-8,6V№±±µ®T”Ќ€-‹7Њ›I“Љ3ѓ1Ђѓџ•'•€…ьеЇ§¶ѕB?&뉙–2’й74ќ*>)'х,)?Ђ‰/,6480Џ‰ю•/Ђ„‘/0љ&!Ќ1A?+(%=—…Њ‚Ђ…‹6‡-+\х®1‡–4=њЏ„‚/'ЏVO›Џ5.Љ”•G·јSќ/!'5
