Форум программистов, компьютерный форум CyberForum.ru

Программа шифрования и дешифрования. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 5.00
Cofeee
Сообщений: n/a
11.12.2011, 15:39     Программа шифрования и дешифрования. #1
Пытаюсь реализовать что-то на подобие шифра Цезаря. Программа должна открывать файл, считывать поэлементно его содержимое и если будет находить соотв. элемент - сдвигать его и записывать в новый файл, а если соотв. эл. не найдет то запис. не изменённым. Проблема в том что, когда начинаю сравнивать исходный файл и дешифрованый - обнаруживаю, что файлы не идентичны. А именно один элемент неправильно дешифрован. Подскажите в чем проблема пожалуйста!
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <stdio.h>
#include <string>
using namespace std;
 
char Shifr(char* ABC, char c, int n, int len) // --------------------- ф-я Шифрования
{
    for(int i = 0; i < len; i++)
    {
        if(ABC[i] == c)
        {
            int q = i + n;
            if ( q  >= len)
            {
                return ABC[q - len];
            }
            else
                return ABC[q];
            
        }
    }
    return c;
}
 
char Deshifr(char* ABC, char c, int n, int len) //------------------- ф-я Дешифрования
{
    for(int i = 0; i < len; i++)
    {
        if(ABC[i] == c)
        {
            int q = i - n;
            if (q < 0)
            {
                return ABC[len + q];
            }
            else
                return ABC[i - n];
             
        }
    }
    return c;
}
 
 
int main() // - - - - - - - - - - - - - - - - - - - - - - - - - - - -  main()
     
{
    setlocale(LC_ALL,"russian");
    
    char text[126];
    char x[100];
    int n,num;
    
    FILE *alf , *ish , *sh , *d_sh;
 
      alf = fopen ( "Alfavit.txt", "rb" )
      int q = 0;
 
      while ( !feof (alf))
      {
            fread ( &text[q] ,1 ,1 ,alf);
            q++;
      }
 
      fclose (alf);
 
    cout << "Введите размер сдвига:";
    cin>> n;
    cout << endl;
 
    int i = 0;
    ish = fopen ( "смайл1.wav" , "rb" );
    sh = fopen ( "Shifr.oop" , "wb" );
    int b;
      while ((b =  fgetc (ish))!=EOF)
      {
          b = Shifr(text,b,n,126);//------ Вызов функции Шифрования
          fputc(b, sh);
          i++;
      }
          
      int  p = i;
      cout << endl << p << endl;
 
      fclose(ish);
      fclose (sh);
 
      cout <<"Файл зашифрован !"<<endl<<endl;
 
    do {
    cout <<"1.Выйти"<<endl;
    cout <<"2.Дешифровать"<<endl;
    cout <<"Ваш выбор:";
 
    cin >> num;
    switch (num)
    {
    case 1:
        break;
    case 2:
        {
            int i = 0;
            cout <<"Файл дешифрован !"<<endl;
            sh = fopen ( "Shifr.oop" , "rb" );
            d_sh = fopen ( "DeShifr.wav" , "wb" );
            int v;
            while ( (v = fgetc(sh))!=EOF)
            
                {
                    v = Deshifr(text,v,n,126);//------ Вызов функции Дешифрования
                    fputc(v, d_sh);
                    i++;
                }
 
            int  j = i ;
            cout << endl << j << endl;
            fclose(sh);
            fclose (d_sh);
            break;
        }
 
        
    } cout<<endl;
        
    }
    while ( num != 1);
     
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2011, 15:39     Программа шифрования и дешифрования.
Посмотрите здесь:

C++ программа для шифрования и расшифровки текстовых файлов
C++ Программа для шифрования
Реализация алгоритма шифрования и дешифрования Serpent. C++
C++ Написать программу шифрования и дешифрования методом подстановки
C++ Программа шифрования\дешифрования
Cоздать программу шифрования и дешифрования C++
Программа шифрования текста C++
C++ Почему не полностью работает программа шифрования? шифрует ок, а дешифрирует плохо, теряет последние 2 символа

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 16:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru