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

cryptoapi, шифрование, 3DES - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Дано целое число K. Поменять порядок цифр в числе на обратный. http://www.cyberforum.ru/cpp-beginners/thread283258.html
Дано целое число K. Поменять порядок цифр в числе на обратный.
C++ Вроде простенькая Задача Данно 3 массива.Найти элементы которые есть в 1 массиве и нет в 2 и 3. мой код int mas1={1,3,6,5,7,2}; int mas2={1,10,11,7,2,12}; int mas3={20,6,25,2,17,18}; int i;int j; ... http://www.cyberforum.ru/cpp-beginners/thread283243.html
линейный однонаправленный список C++
имеются сведения о спортсменах-лыжниках: фамилия, результат(сек), страна. 1. создать линейный однонаправленный список(очередь) 2. распечатать список 3. вывести сведения о победителях, занявших...
C++ Доля слов в тексте
Добрый вечер! Очень нужна помощь. Требуется написать программу, которая считала бы долю каждого слова от всего текста. При этом, конечно, надо учитывать, что слова могут быть написаны в различных...
C++ Borland - масив(матрица) http://www.cyberforum.ru/cpp-beginners/thread283204.html
Дан масив X. Сформировать из него матрицу А, которая содержит по L елементов в строке. Если елементов в последней строке не хватает, заполнить пустоту нолями. Матрицу вывети по строках.
C++ Уплотнить заданную матрицу, удаляя из нее строки и столбцы, заполненные нулями. Найти номер первой из строк, содержащих хотя бы один положительный эле Уплотнить заданную матрицу, удаляя из нее строки и столбцы, заполненные нулями. Найти номер первой из строк, содержащих хотя бы один положительный элемент. (ДИНАМИЧЕСКИЙ МАССИВ!) подробнее

Показать сообщение отдельно
Saiberg
19 / 19 / 1
Регистрация: 23.09.2010
Сообщений: 193
26.04.2011, 19:53
проца для расшифровки. может поможет)

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
DWORD Decode3Des(BYTE* input, DWORD* szInput, BYTE* key1, BYTE* key2, BYTE* key3, BYTE* iVector)
{
    HCRYPTPROV hProv;
    CryptAcquireContext(&hProv, NULL, NULL, PROV_RSA_FULL, CRYPT_DELETEKEYSET);
    if(CryptAcquireContext(&hProv, NULL, NULL, PROV_RSA_FULL, CRYPT_NEWKEYSET)){
        
        BLOBHEADER keyHeader;
        keyHeader.bType = PLAINTEXTKEYBLOB;
        keyHeader.bVersion = CUR_BLOB_VERSION;
        keyHeader.reserved = 0;
        keyHeader.aiKeyAlg = CALG_3DES;
 
        BYTE bKey[36];
        memset(bKey, 0, 36);
        memcpy(bKey, &keyHeader, sizeof(keyHeader));
        bKey[sizeof(keyHeader)] = 24;
        memcpy(bKey + sizeof(keyHeader) + sizeof(DWORD), key1, 8);
        memcpy(bKey + sizeof(keyHeader) + sizeof(DWORD) + 8, key2, 8);
        memcpy(bKey + sizeof(keyHeader) + sizeof(DWORD) + 16, key3, 8);
 
 
        DWORD result=0;
 
        HCRYPTKEY hKey;
        if(CryptImportKey(hProv, bKey, sizeof(keyHeader) + sizeof(DWORD) + 24, NULL, 0, &hKey)){
         
            DWORD desMode = CRYPT_MODE_CBC;
            CryptSetKeyParam(hKey, KP_MODE, (BYTE*)&desMode, 0);
            
            CryptSetKeyParam(hKey, KP_IV, iVector, 0);
        
            if(CryptDecrypt(hKey, 0, TRUE, 0, input, szInput)) result = *szInput;
            
                
            CryptDestroyKey(hKey);
 
        }
 
        CryptReleaseContext(hProv,0);
 
        return result;
    }
 
    return 0;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru