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

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

Войти
Регистрация
Восстановить пароль
 
hknower
0 / 0 / 0
Регистрация: 04.01.2014
Сообщений: 55
#1

Генерация сессионного ключа AES - C++

25.04.2014, 15:37. Просмотров 1141. Ответов 1
Метки нет (Все метки)

Добрый день

Нужно сгенерировать aes-256 ключ.

Начал с простого:
C++ (Qt)
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
int CreateSessionKey(struct key* key_toret)
{
    //Генерация сессионного ключа
    HCRYPTPROV hProv;
    HCRYPTKEY hKey;
    if(!CryptAcquireContext(&hProv,NULL,NULL,PROV_RSA_AES,CRYPT_VERIFYCONTEXT))
    {
        printf("\nCryptAcquireContext error");
        return 0;
    }
    
    if(!CryptGenKey(hProv , CALG_AES_256,CRYPT_EXPORTABLE,&hKey))
    {
        printf("\nCryptGenKey error");
        return 0;   
    }
 
//      Этот код работает и показывает keylen =256
//  DWORD keylen_test;
//  DWORD len_test = sizeof(keylen_test);
//  CryptGetKeyParam(hKey , KP_KEYLEN , (BYTE*)&keylen_test , &len_test , 0);
//  printf("\nkeylen = %d" , keylen_test);
 
    BYTE aes_key[MAX_PATH];
    DWORD aes_keylen=0;
 
    if(!CryptExportKey(hKey  , 0 , PRIVATEKEYBLOB , 0 , aes_key , &aes_keylen))
    {
        int err=GetLastError();
        printf("\nCryptExportKey error=%d" , err);
    }
 
    CryptDestroyKey(hKey);
    CryptReleaseContext(hProv, 0);
    
       key_toret->key = aes_key;
       key_toret->key_len = aes_keylen;
 
       return 1;
}
Код отрабатывает и показывает:
C++ (Qt)
1
2
CryptExportKey error=2148073475
keyen=0
Мне всего лишь нужен сгенеренный ключ
Что я делаю не так?
Спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.04.2014, 15:37     Генерация сессионного ключа AES
Посмотрите здесь:

AES в C++ - C++
Привет, где можно найти рабочую функцию шифрования/дешифрования AES в С++ ? Работаю в builder Спасибо!

AES библиотека - C++
Какую библиотеку можно использовать для работы с AES на C++ (Windows)?

AES. Расшифровка - C++
Допустим, у меня есть такие функции AES. /* алгоритм AES-256 размер блока - 128 бит размер ключа - 128 бит реализовано только...

Aes шифрование - C++
Здравствуйте! Зашифровываю файл и вывожу частоту вхождения символов. Такой вопрос,какую использовать кодировку,что бы распознать все...

AES шифрование - C++
Разработать на языке программирования C/C++ консольное или оконное приложение, выполняющее зашифрование и расшифрование файла...

AES не совпадает ни 1 вариант - C++
Беру цифру 1, пароль тоже 1. Большинство выводят результат в base64, я нашёл конвертор в hex: 1 строка base64 2 строка hex

Как реализовать AES на С++ - C++
У кого-нибудь есть рабочий код с функциями шифровки/дешифровки. А то нигде не могу найти...

Алгоритм шифрования AES - C++
Всем доброго времени суток! Господа, прошу помочь определиться с тем как более правильно использовать алгоритм AES для лицензирования...

Разобраться с функциями AES - C++
Нашел здесь код. aes.h /**\addtogroup AES ****************************************************////@{ ...

Хэширование md5 и шифрование AES - C++
Собственно нужно реализовать проверку пароля, его хранить в открытом виде конечно нельзя, хочу хэш md5, как? И еще нужно закриптовать...

Cryptopp шифрование AES ECB - C++
Добрый день. Есть код, выполняющий шифрование Rijndael ECB (128 бит): #include <iostream> #include <cryptopp/aes.h> #include...

Написать AES, шифрования любого файла .exe. - C++
Есть задача написать AES, который будет зашифровывать и расшифровывать любой файл .exe. Как лучше открывать этот файл, если нужно считывать...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
prostotype
0 / 0 / 0
Регистрация: 17.07.2015
Сообщений: 1
17.07.2015, 08:25     Генерация сессионного ключа AES #2
возможно, вот тут ошибка

Код
DWORD aes_keylen=0;
Ответ Создать тему
Опции темы

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