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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.80
Roland Discane
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 45
#1

Алгоритм шифрования ГОСТ 28147-89 - C++

23.03.2014, 22:52. Просмотров 1962. Ответов 10
Метки нет (Все метки)

Всем привет, реализую алгоритм данный алгоритм шифрования, хотелось бы прояснить пару моментов.
Не совсем понимаю, как считывать файлы: массивом или это надо всё в одну переменную?
Вот, сделал такой пример, но мне кажется, что не совсем правильно
C++
1
2
3
4
5
6
7
8
9
10
while (n > 0) {            // n - количество символов в файле
        as = 0;           // переменная, в которую будет записываться (назвал рандомно просто для примера)
        std::ifstream file("F://original.txt", std::ios::binary);
        file.seekg(f);  // для учитывания позиции чтения символов в файле
        file.read((char *)&as, 4);
        file.close();
        std::cout << as << std::endl;
        n -= 1;
        f += 1; // изначально 0, это чуть выше
    }
Может кто сможет наставить на путь истинный?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Alexandr_869
4 / 4 / 0
Регистрация: 09.10.2013
Сообщений: 7
24.03.2014, 01:22     Алгоритм шифрования ГОСТ 28147-89 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <conio.h>
#include <string>
#include <fstream>
 
std::fstream file;
 
int main(){
    std::string str_1;
    std::fstream *p = NULL;
 
    file.open("file.txt", std::ios::in);
    p = &file;
    while(getline(*p, str_1)){
        std::cout << str_1;
    }
    file.close();
 
    _getch();
    return 0;
}
Roland Discane
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 45
24.03.2014, 01:46  [ТС]     Алгоритм шифрования ГОСТ 28147-89 #3
А если мне нужно считывать блочно? Блок, длиной в 64 бита, например?
Alexandr_869
4 / 4 / 0
Регистрация: 09.10.2013
Сообщений: 7
24.03.2014, 02:29     Алгоритм шифрования ГОСТ 28147-89 #4
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
#include <iostream>
#include <string>
#include <conio.h>
#include <fstream>
 
int main(){
    system("chcp 1251");
    int size;
    std::ifstream file;
    char* buffer;
 
    file.open("file.txt", std::ios::binary);
    file.seekg (0, std::ios::end);
    size = file.tellg();
    file.seekg (0, std::ios::beg);
    buffer = new char [size];
    file.read(buffer, size);
    file.close();
 
    std::cout.write (buffer, size);
 
    _getch();
    return 0;
}
Roland Discane
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 45
24.03.2014, 02:41  [ТС]     Алгоритм шифрования ГОСТ 28147-89 #5
Спасибо большое) Сейчас буду смотреть

Добавлено через 3 минуты
C++
1
system("chcp 1251")
Это для русского языка, я полагаю?
Alexandr_869
4 / 4 / 0
Регистрация: 09.10.2013
Сообщений: 7
24.03.2014, 02:45     Алгоритм шифрования ГОСТ 28147-89 #6
Точно
Roland Discane
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 45
24.03.2014, 02:54  [ТС]     Алгоритм шифрования ГОСТ 28147-89 #7
А если я хочу считать 64 бита, то должно быть так:
C++
1
2
3
4
5
6
7
        file.open("F://original.txt", std::ios::binary);
    file.seekg(64, std::ios::beg);
    size = file.tellg();
    //file.seekg(0, std::ios::beg);
    buffer = new char[size];
    file.read(buffer, size);
    file.close();
Или это получается, что я читаю 64 символа, а не бита?

Добавлено через 2 минуты
А, не, это позиция относительно начала получается.
Блин, что-то я вообще не понимаю ничего тогда...
Alexandr_869
4 / 4 / 0
Регистрация: 09.10.2013
Сообщений: 7
24.03.2014, 03:22     Алгоритм шифрования ГОСТ 28147-89 #8
Как считывать из файла данные по 64 бита
Andrey_Prasol
0 / 0 / 0
Регистрация: 25.03.2014
Сообщений: 2
25.03.2014, 11:47     Алгоритм шифрования ГОСТ 28147-89 #9
Alexandr_869, помоги пожалуйста
Roland Discane
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 45
25.03.2014, 12:30  [ТС]     Алгоритм шифрования ГОСТ 28147-89 #10
Alexandr_869, спасибо. У меня ещё такой вопрос: я должен считывать символы в массив или интовую переменную?
Получается, что в интовую, потому что дальше я должен с ней работать. Я не совсем понимаю как это сделать.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.03.2014, 00:37     Алгоритм шифрования ГОСТ 28147-89
Еще ссылки по теме:

алгоритм шифрования MISTY1 C++
C++ Рализовать Si блок алгоритма шифрования ГОСТ 28147
C++ ГОСТ 28147 Гаммирование
Алгоритм шифрования RSA C++
C++ Выполнить программную реализацию алгоритма ГОСТ 28147

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

Или воспользуйтесь поиском по форуму:
Alexandr_869
4 / 4 / 0
Регистрация: 09.10.2013
Сообщений: 7
26.03.2014, 00:37     Алгоритм шифрования ГОСТ 28147-89 #11
http://informatics.mccme.ru/mod/book/view.php?id=561
Yandex
Объявления
26.03.2014, 00:37     Алгоритм шифрования ГОСТ 28147-89
Ответ Создать тему
Опции темы

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