Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
Roland Discane
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 45
1

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

23.03.2014, 22:52. Просмотров 2449. Ответов 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, это чуть выше
    }
Может кто сможет наставить на путь истинный?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.03.2014, 22:52
Ответы с готовыми решениями:

Рализовать Si блок алгоритма шифрования ГОСТ 28147
Задание 1. Рализовать Si блок алгоритма шифрования ГОСТ 28147

ГОСТ 28147 Гаммирование
Нашел вот на форуме код.. мне по заданию нужно разделить входящий текст на...

ГОСТ 28147-89 режим простой замены
Добрый день, уважаемые формучане. Решил написать программу, которая реализует...

Выполнить программную реализацию алгоритма ГОСТ 28147
Товарищи программисты,помогите с заданием! Выполнить программную реализацию...

Получение случайной гаммы на основе ГОСТ 28147-89
Вот описание алгоритма: http://ifolder.ru/15800864 - описание в jpg файле...

10
Alexandr_869
4 / 4 / 1
Регистрация: 09.10.2013
Сообщений: 7
24.03.2014, 01:22 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;
}
0
Roland Discane
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 45
24.03.2014, 01:46  [ТС] 3
А если мне нужно считывать блочно? Блок, длиной в 64 бита, например?
0
Alexandr_869
4 / 4 / 1
Регистрация: 09.10.2013
Сообщений: 7
24.03.2014, 02:29 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;
}
1
Roland Discane
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 45
24.03.2014, 02:41  [ТС] 5
Спасибо большое) Сейчас буду смотреть

Добавлено через 3 минуты
C++
1
system("chcp 1251")
Это для русского языка, я полагаю?
0
Alexandr_869
4 / 4 / 1
Регистрация: 09.10.2013
Сообщений: 7
24.03.2014, 02:45 6
Точно
0
Roland Discane
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 45
24.03.2014, 02:54  [ТС] 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 минуты
А, не, это позиция относительно начала получается.
Блин, что-то я вообще не понимаю ничего тогда...
0
Alexandr_869
4 / 4 / 1
Регистрация: 09.10.2013
Сообщений: 7
24.03.2014, 03:22 8
Как считывать из файла данные по 64 бита
1
Andrey_Prasol
0 / 0 / 0
Регистрация: 25.03.2014
Сообщений: 2
25.03.2014, 11:47 9
Alexandr_869, помоги пожалуйста
0
Roland Discane
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 45
25.03.2014, 12:30  [ТС] 10
Alexandr_869, спасибо. У меня ещё такой вопрос: я должен считывать символы в массив или интовую переменную?
Получается, что в интовую, потому что дальше я должен с ней работать. Я не совсем понимаю как это сделать.
0
Alexandr_869
4 / 4 / 1
Регистрация: 09.10.2013
Сообщений: 7
26.03.2014, 00:37 11
http://informatics.mccme.ru/mod/book/view.php?id=561
1
26.03.2014, 00:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.03.2014, 00:37

ГОСТ 28147-89 Режим простой замены. Исходный текст не совпадает с дешифрованным
Добрый вечер, уважаемы форумчане. Решил реализовать шифр ГОСТ 28147-89 Режим...

Алгоритм симметричного шифрования ГОСТ 28147-89
Доброго времени суток, товарищи. Вот такую задачку подкинули по информационной...

Объясните алгоритм хэширования: ГОСТ Р 34.11-94
Доброго времени суток) Объясните, пожалуйста, алгоритм хэширования госта р...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru