Форум программистов, компьютерный форум, киберфорум
Наши страницы

Работа с файлами - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сортировка массива http://www.cyberforum.ru/cpp-beginners/thread976570.html
Дан массив,содержащий n элементов.Требуется отсортировать элементы массива в порядке возрастания, отбрасывая при этом все повторяющиеся значения.Количество элементов в массиве после сортировки должно...
C++ Как лучше передавать значения в функцию? Ссылки vs указатели Всем доброго времени суток. Уважаемые гуру, подскажите пожалуйста, как лучше передавать значения в функцию, через указатель или ссылку? И если не лень будет объяснить почему) Мне лично кажется, что... http://www.cyberforum.ru/cpp-beginners/thread976555.html
Определить среднее арифметическое простых чисел последовательности C++
Вводится последовательность целых чисел, 0 – конец последовательности. Определить среднее арифметическое простых чисел последовательности (результатом функции будет 1 – число простое, 0 - нет). ...
C++ Как проверить тип переменный, который получен через cin?
Вообще как можно реализовать, чтобы юзер набрал число с типом десятичной или вещественного типа. Надо у знать что за тип, чтобы впихать в int или в double. Всем зарнее спасибо
C++ Как проверить тип переменный, который получен через cin? http://www.cyberforum.ru/cpp-beginners/thread976532.html
Вообще как можно реализовать, чтобы юзер набрал число с типом десятичной или вещественного типа. Надо у знать что за тип, чтобы впихать в int или в double. Всем зарнее спасибо
C++ Дано х, у. Определить, принадлежит ли точка (х,у) области, указанной на рисунке Условие задачи таково: Дано х, у. Определить, принадлежит ли точка (х,у) области, указанной на рисунке. подробнее

Показать сообщение отдельно
Salvators
0 / 0 / 0
Регистрация: 17.02.2013
Сообщений: 13

Работа с файлами - C++

13.10.2013, 19:41. Просмотров 342. Ответов 2
Метки (Все метки)

Здравствуйте. В моей программе нужно зашифровать файл любого расширения, например jpg (я взял). Проблема в том, что: значения которые я получаю из файла - они типа char, использованный шифр Эль-Гамаля работает только с числами. Вопрос: как зашифровать данные типа char по этому шифру.
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
ifstream Fread;
    int i, gcd=0, r, e;
    long long cB, dB, k;
    int m;
    long long p, q, g=0;
    Fread.open("C:\\проги\\ris.jpg", ios::binary|ios::in|ios::ate);
    size_t raz = Fread.tellg();
    vector <char> result(raz);
    Fread.seekg(0, ios::beg);
    Fread.read(&result[0], raz);
    Fread.close (); 
    
            while(1)
            {
              cout<<"Введите p"<<endl;
              cin>>p;
              if(prost(p)) // проверка на простоту
                break;
              else cout<<"Не простое"<<endl;
             }
            q=(p-1)/2;
            for(i=2; i<=p-1; i++)
            {
               g=i;
               if (mod(g, p, q)!=1)  break;
            } 
            cout<<g<<endl;
            while(1)
            {
              cout<<"Введите сB: "<<endl;
              cin>>cB;
              if (vzprost(p-1, cB, gcd) == 1) // проверка на взаимную простоту чисел
                 break;
               else cout<<"Числа сB и (р-1) - не взаимно простые. Попробуйте еще раз!"<<endl;
            }
            dB=mod(g, p, cB);
            while(1)
            {
                cout<<"Введите k (от 1 до "<<p-2<<"): "<<endl;
                cin>>k;
                if( k>=1 && k<=(p-2))
                    break;
                else
                    cout<<"Такое k не подходит. Попробуйте еще раз"<<endl;
            }
            ofstream Fwrite;
            Fwrite.open ("C:\\проги\\ris1.jpg", ios::binary|ios::out);
            r = mod(g, p, k); //вычисление g в степени k по модулю p
            Fwrite << r << ",";
            for(size_t i=1;i<raz;i++) 
            {
                e = (result[i] * mod(dB, k, p)) % p;
                Fwrite << e << ",";
            }
            Fwrite.close ();
 
            P = p;
            CB = cB;
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru