Написать программу хеширования Гост 34.11-2012 на OpenSSL C++? Нужно написать программу шифрования данных из текстового файла.
Использовать OpenSSL и хеш 34.11-2012 на c++
Вопросы:
Есть какая-нибудь стартовая версия программы с этим шифрованием?
Документация для шифрования по этому Госту?
Хоть какая-то информация на c++

16 Мая 2020 в 19:48
271 +1
0
Ответы
1
include <openssl/evp.h>include <openssl/rand.h>include include define FILE_SIZE 1024define KEY_SIZE 32

void handleErrors()
{
std::cerr << "Error: ";
ERR_print_errors_fp(stderr);
}

int main()
{
EVP_MD_CTX mdctx;
const EVP_MD md;
unsigned char md_value[EVP_MAX_MD_SIZE];
unsigned int md_len;
unsigned char key[KEY_SIZE];

// Генерируем случайный ключ
if (RAND_bytes(key, KEY_SIZE) != 1) {
std::cerr << "Error generating random key" << std::endl;
}
// Открываем файл для чтения
std::ifstream infile("input.txt", std::ios::binary);
if (!infile) {
std::cerr << "Error opening input file" << std::endl;
return 1;
}
md = EVP_get_digestbyname("md_gost12_256");
if (!md) {
std::cerr << "Error getting md gost12 256" << std::endl;
return 1;
}
mdctx = EVP_MD_CTX_new();
EVP_DigestInit_ex(mdctx, md, NULL);
// Вычисляем хеш
while (!infile.eof()) {
char buffer[FILE_SIZE];
infile.read(buffer, FILE_SIZE);
int bytes_read = infile.gcount();
EVP_DigestUpdate(mdctx, buffer, bytes_read);
}
// Получаем хеш
EVP_DigestFinal_ex(mdctx, md_value, &md_len);
std::cout << "Hash: ";
for (unsigned int i = 0; i < md_len; i++) {
std::cout << std::hex << (int)md_value[i];
}
std::cout << std::dec << std::endl;
EVP_MD_CTX_free(mdctx);
infile.close();
return 0;

}

18 Апр в 12:06
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 548 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир