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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
лендер
46 / 46 / 2
Регистрация: 12.01.2010
Сообщений: 183
#1

шифрование файлов произвольного типа - C++

24.08.2010, 15:08. Просмотров 615. Ответов 4
Метки нет (Все метки)

возникла проблема при шифровании: txt файлы шифрует нормально но остальные типы(png) не хочет
вот код
файл SD.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#ifndef __SD
#define __SD
class SD
{
    public:
        SD ();
        static void OpenIn ();
        static void OpenOut ();
        static void Shifr ();
        static void DeShifr ();
        static void Exit ();
        static void Length ();
};
#endif
файл SD.CPP
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
#include <process.h>
#include <conio.h>
#include <iostream.h>
#include "SD.h"
FILE *In = NULL, *Out = NULL;
char *buff;
long int Count = 0;
void SD :: OpenIn ()
{
    char InName[150];
    cout << "Enter a name IN - File" << endl;
    cin >> InName;
    In = fopen (InName, "r");
}
void SD :: OpenOut ()
{
    char OutName[150];
    cout << "Enter a name OUT - File" << endl;
    cin >> OutName;
    Out = fopen (OutName, "w+");
}
void SD :: Shifr ()
{
    if (In != NULL && Out != NULL)
    {
        SD :: Length ();
        fseek (In, 0, SEEK_SET);
        fseek (Out, 0, SEEK_SET);
 
        buff = new char[Count];
 
 
            fread(buff,Count,1,In);
 
            for( int i = 0 ; i < Count ; i++ )
              buff[i]++;
 
            fwrite (buff,Count,1,Out);
          
    }
    else
    {
        cout << "Can not open IN file" << endl;
        getch ();
    }
}
void SD :: DeShifr ()
{
    if (In != NULL && Out != NULL)
    {
        SD :: Length ();
        fseek (In, 0, SEEK_SET);
        fseek (Out, 0, SEEK_SET);
 
        buff = new char[Count];
 
 
            fread(buff,Count,1,In);
 
            for( int i = 0 ; i < Count ; i++ )
              buff[i]--;
 
            fwrite (buff,Count,1,Out);
 
    }
    else
    {
        cout << "Can not open OUT file" << endl;
        getch ();
    }
}
void SD :: Exit ()
{
    fclose (In);
    fclose (Out);
    exit (1);
}
void SD :: Length ()
{
 
    fseek (In, 0, SEEK_SET);
    fseek( In, 0, SEEK_END );
    Count = ftell(In);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.08.2010, 15:08     шифрование файлов произвольного типа
Посмотрите здесь:

Дан файл произвольного типа. Создать его копию с новым именем. C++
C++ Сортировка массива произвольного типа
Шифрование файлов открытым ключем C++
C++ Шифрование любого типа данных
Динамический массив элементов произвольного типа C++
C++ Собственная реализация контейнера для хранения значений произвольного типа
Шифрование файлов, алгоритм Anubis C++
Шифрование файлов алгоритмом RSA C++
Функции ввода и вывода массива произвольного типа через void C++
Реализовать структуру для хранения массива произвольного типа с помощью шаблонов C++
Структура для хранения массива произвольного типа с использованием шаблонов C++
Шифрование строки типа string методом xtea C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Эксперт С++
9440 / 5463 / 925
Регистрация: 25.07.2009
Сообщений: 10,485
24.08.2010, 15:16     шифрование файлов произвольного типа #2
лендер, файлы нужно открывать, как двоичные (с буковкой "b") - это во-первых. А во-вторых с языком программирования всё-таки определитесь. Такие вот гремучие смеси из С и С++ выглядят ужасно, а работают ещё хуже...
лендер
46 / 46 / 2
Регистрация: 12.01.2010
Сообщений: 183
24.08.2010, 15:37  [ТС]     шифрование файлов произвольного типа #3
это не мой код, мне дали его подправить

Добавлено через 14 минут
у меня с режимом открытия "b" вообще ничего не открывает, может его вообще не существует в borland c++ 3.1
easybudda
Эксперт С++
9440 / 5463 / 925
Регистрация: 25.07.2009
Сообщений: 10,485
24.08.2010, 15:57     шифрование файлов произвольного типа #4
Цитата Сообщение от лендер Посмотреть сообщение
у меня с режимом открытия "b" вообще ничего не открывает,
добавлять надо букву b
C++
1
2
3
4
5
...
In = fopen (InName, "rb");
...
Out = fopen (OutName, "w+b");
...
И кстати - проверять результат открытия файлов неплохо бы, а то fopen() ни про какие исключения не знает, просто возвращает NULL если не задалось что-то...
лендер
46 / 46 / 2
Регистрация: 12.01.2010
Сообщений: 183
24.08.2010, 16:22  [ТС]     шифрование файлов произвольного типа #5
там есть
C++
1
  if (In != NULL && Out != NULL)
еще я дописывал сразу после открытия проверку но не сохранил)
Yandex
Объявления
24.08.2010, 16:22     шифрование файлов произвольного типа
Ответ Создать тему
Опции темы

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