Создание и реализация самого простого криптоалгоритма - C (СИ)
Формулировка задачи:
#include <string.h> #include <stdio.h> #include <conio.h> int main(void) { clrcscr (); FILE *stream; char ch; stream = fopen("text.txt", "w+"); do { ch = fgetc(stream); putch(ch); } while (ch != EOF); fclose(stream); return 0; getch (); }
Решение задачи: «Создание и реализация самого простого криптоалгоритма»
textual
Листинг программы
#include<stdlib.h> #include<conio.h> #include<stdio.h> main() { clrscr(); int i; int key[5]; char *ch, ch2, ch_temp; int temp; FILE *in_1, *out_1, *in_2, *out_2; printf("\n\t 1.zashifrovat'"); printf("\n\t 2.rashifroat'"); printf("\n"); ch2=getche(); printf("\n\tEnter key: "); for(i=0; i<5; i++) { *ch=getche(); key[i]=atoi(ch); } switch(ch2) { case '1': { if ((in_1 = fopen("C:\\in.txt", "rt"))==NULL) { fprintf(stderr, "\n\tCannot open input file.\n"); return 1; } if ((out_1 = fopen("C:\\out.txt", "wt"))==NULL) { fprintf(stderr, "\n\tCannot open output file.\n"); return 1; } i=0; while (!feof(in_1)) { ch_temp=fgetc(in_1); temp=ch_temp; temp=temp+key[i]; i++; fputc(temp, out_1); if(i==5) { i=0; } } fclose(in_1); fclose(out_1); } break; case '2': { if ((in_2 = fopen("C:\\out.txt", "rt"))==NULL) { fprintf(stderr, "\n\tCannot open input file.\n"); return 1; } if ((out_2 = fopen("C:\\out2.txt", "wt"))==NULL) { fprintf(stderr, "\n\tCannot open output file.\n"); return 1; } i=0; while (!feof(in_2)) { ch_temp=fgetc(in_2); temp=ch_temp; temp=temp-key[i]; i++; fputc(temp, out_2); if(i==5) { i=0; } } fclose(in_2); fclose(out_2); } } return 0; }
Объяснение кода листинга программы
- В начале программы объявляются переменные и функции:
i
- счетчик;key
- массив для хранения ключа;ch
,ch2
,ch_temp
- переменные для работы с файлами и данными;temp
- временная переменная для хранения числовых значений;in_1
,out_1
,in_2
,out_2
- файлы для ввода и вывода данных.
- Далее идет запрос на ввод ключа с помощью функции
getche()
. - Затем выполняется проверка на открытие файлов
in.txt
иout.txt
для чтения и записи соответственно. Если файлы не открылись, программа выводит сообщение об ошибке и завершается. - В случае успешного открытия файлов, программа начинает шифрование или дешифрование данных в зависимости от выбранного режима (1 или 2).
- В процессе шифрования или дешифрования каждый символ из входного файла считывается, к нему прибавляется или отнимается соответствующий элемент ключа, а затем результат записывается в выходной файл.
- После завершения обработки всех символов, файлы закрываются.
- Если в процессе работы программы возникнут ошибки (например, некорректный ввод данных), программа выведет сообщение об ошибке и завершится.
- В конце программы возвращается значение 0, что означает успешное выполнение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д