Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
28 / 28 / 1
Регистрация: 10.12.2009
Сообщений: 792
1

Шифр Цезаря

28.10.2012, 20:48. Показов 3053. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем добрый вечер.
Задача:
1) Зашифровать файл методом Цезаря.
2) Подобрать ключ по зашифрованному файлу методом сужения (размер ключа может быть от 3 до 20). Зашифровать проблем не составило, а вот подобрать ключ ...

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
83
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
 
main(int argc,char *argv[])
{
FILE *fin, *tmp;
int i,j;
char buffer[80000];
char bufferCode[80000];
char key[50];
char ch;
 
//Проверка кол-ва аргументов командной строки
if (argc<4)
    {
    puts("Ошибка!!! Неверное количество аргументов командной строки.\n");
    puts("Правильно: shifr.exe [имя_файла_для_шифрования] [имя_выходного_файла] [ключ]");
    puts("\nПожалуйста нажмите Enter");
    getchar();
    exit(0);
    }
    
//Открытие на чтение файла, с незашифрованной информацией    
   if ((fin=fopen(argv[1],"rb"))==NULL)
{
printf("Ошибка открытия входного файла  <<   %s  >>. !!!\n",argv[1]);    
puts("\nПожалуйста нажмите Enter");
getchar();   
exit(0);
}
 
//Открытие на запись файла  для зашифрованной информации
if ((tmp=fopen(argv[2],"wb"))==NULL)
{
printf("Невозможно создать выходной файл  <<  %s  >> !!!\n",argv[2]); 
puts("\nПожалуйста нажмите Enter");
getchar();   
exit(0);
}
 
 i=0;
 j=0;
 
 //Побитовое чтение из файла с незашифрованной информацией, кодирование, запись в выходной файл
while ((ch!=EOF)&&(!feof(fin)))
{
fread(&ch, 1, 1, fin);
printf("ch[%d]= %c\n",j,ch);
bufferCode[j]=ch+argv[3][i];
i++;
j++;
 
//Условие цикличности ключа
if (i==strlen(argv[3]))
 i=0;
}
 
for (i=0;i<j;i++)
 {
  ch=bufferCode[i];
  printf("i= %d %c\n",i,ch);
  fwrite(&ch, sizeof(char), 1, tmp);
 }
 
//Закрытие входного файла
if ((fclose(fin))!=0)
{
printf("Ошибка закртыия входного файла!!!\n");    
exit(0);
}
 
//Закрытие выходного файла
if ((fclose(tmp))!=0)
{
printf("Ошибка закрытия временного файла !!!\n");    
exit(0);
}
 
printf("Программа успешно зашифровала данные.\nЗашифрованная информация в файле <<  %s  >>  \n",argv[2]);
puts("\nПожалуйста нажмите Enter");
getchar();
}
Ограничения как на алфавит сообщения, так и на алфавит ключа нет ...
Вероятно, кто-то уже сталкивался с такой задачей, спасибо за любую помощь)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.10.2012, 20:48
Ответы с готовыми решениями:

Шифр Цезаря
Пологаю, все знают о чем идет речь. Вот ссылка если что...

Шифр Цезаря
Добрый день, возникла одна проблема, написал программу зашифровывающую строку шифром Цезаря, но...

Шифр Цезаря в Си
Программа осуществляет шифрование текста, написанного латинским алфавитом, по методу Цезаря с...

Шифр Цезаря - ошибка в коде
Добрый день похожих вариантов задания было много, но не нашла ответа на свой вопрос. Как все...

0
28.10.2012, 20:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.10.2012, 20:48
Помогаю со студенческими работами здесь

Шифр Цезаря. Обратный сдвиг
#include&lt;stdio.h&gt; #include&lt;string.h&gt; int main() { char E = &quot;ABCDEFGHIJKLMNOPQRSTUVWXYZ&quot;; ...

Шифр Цезаря. Чтение аргумента строки
Написать программу,которая шифруют сообщение шифром Цезаря.Первый дополнительный параметр—целое...

Шифр Цезаря выдает Segmentation fault
не работает, помогите разобраться(компилируется без ошибок, но при запуске и вводе ключа шифра...

Шифр Цезаря через командую строку
Здравствуйте.Помогите пожалуйста дописать программу. Вот условие задачи: Программа осуществляет...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru