Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Реализации различных алгоритмов на Си / шифрование гаммированием

.doc
Скачиваний:
22
Добавлен:
20.06.2014
Размер:
68.61 Кб
Скачать

2

1. Задание

Написать программу, осуществляющую кодирование и раскодирование последовательности из входного файла заданным методом и сохраняющую результат в выходной файл. Имена файлов вводит пользователь. Режим работы с файлам – двоичный. Для алгоритмов шифрования/дешифрования пользователь должен вводить также ключ.

Вариант

4 – гаммирование

3. Листинг программы

#include <stdlib.h>

#include <stdio.h>

#include <string.h>

#include <time.h>

#include <conio.h>

#include <locale.h>

const int N=32;

char* code(char* str, int* mass)

{

int count = 0;

char *res = (char*)malloc(strlen(str)*sizeof(char));

for(int i=0;i<=strlen(str);i++)

res[i]=str[i];

for(int i = 0; i < strlen(res); i++, count++)

{

if(count == (N-1))

count = 0;

res[i] = ((str[i])^mass[count]);

}

return res;

}

int main()

{

setlocale(LC_ALL,"Rus");

srand (time(NULL));

int mass[N];

for(int i = 0; i < N; i++)

mass[i] = rand()%100;

char file[100]="",str[100];

printf("Введите имя файла: ");

scanf("%s",file);

FILE *fp=fopen(file,"r+");

fgets(str,100,fp);

fclose(fp);

printf("\nИсходная строка: %s",str);

printf("\nЗакодированная строка: %s",code(str, mass));

printf("\nРаскодированная строка: %s",code(code(str, mass),mass));

getch();

}