Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.10.2014, 19:56   #1
Vichita
Новичок
Джуниор
 
Регистрация: 15.10.2014
Сообщений: 2
По умолчанию разработать приложение, использующее CryptoAPI

Нужно разработать приложение, использующее CryptoAPI и выполняющее следующие функции:
• отображение списка всех имеющихся в операционной системе криптопровайдеров;
• инициализация криптопровайдера Microsoft Base Cryptographic Provider (после инициализации отобразить номер версии, способ реализации криптопровайдера и список поддерживаемых алгоритмов);
• генерация ключей случайным образом или на основе парольной фразы (в соответствии с вариантом задания);
• шифрование и дешифрование данных (структура данных и алгоритм шифрования выбирается в соответствии с вариантом задания
Вот вариант: Информация, хранимая в структуре данных: серия тепловоза, род службы (грузовой, пассажирский, маневровый), мощность, скорость, длина, вес
Алгоритм симметричного шифрования: DES
Способ генерации ключа: парольная фраза.
Vichita вне форума Ответить с цитированием
Старый 15.10.2014, 20:04   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Честно признаюсь что тоже бы хотел понять как с ним работать. Но увы ничем помочь не могу. Самому нужна такая штука.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.10.2014, 20:52   #3
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,609
По умолчанию

Отображение списка имеющихся криптопровайдеров

Код:
#include <stdio.h>
#include <windows.h>
#include <wincrypt.h>

#pragma comment(lib,"advapi32.lib")

int main()
{
DWORD size;
DWORD type;
DWORD index=0;
char* name;

while( CryptEnumProviders(index, 0, 0, &type, 0, &size) ) // запрос размера строки, содержащей название криптопровайдера в переменную size
{
name = new char[size];
CryptEnumProviders(index, 0, 0, &type, name, &size);
printf("%d %d %s\n", index, type, name);
index++;
delete[] name;
}
}
Инициализация криптопровайдера
Код:
HCRYPTPROV prov;
CryptSetProvider(name, type);
CryptAcquireContext(&prov, 0, name, type, 0);

// получение списка алгоритмов
PROV_ENUMALGS q1;
DWORD size4;
CryptGetProvParam(prov, PP_ENUMALGS, (BYTE*) &q1, &size4, CRYPT_FIRST);
printf("%s\n", q1.szName);
while( GetLastError() != ERROR_NO_MORE_ITEMS )
{
CryptGetProvParam(prov, PP_ENUMALGS, (BYTE*) &q1, &size4, CRYPT_NEXT);
printf("%s\n", q1.szName);
}

// получение версии

DWORD version;
DWORD size2;

CryptGetProvParam(prov, PP_VERSION, (BYTE*) &version, &size2, 0);
printf("%x\n", version);

//определение способа реализации криптопровайдера
DWORD impl;
CryptGetProvParam(prov, PP_IMPTYPE, (BYTE*)&impl, &size2, 0);
printf("%x ", impl);
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 15.10.2014, 21:07   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

И я добавлю: http://fk-uran.com.ua/delphi-crypto-...troki-parolem/
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.10.2014, 21:12   #5
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,609
По умолчанию

Установка алгоритма и способа генерации ключей

Код:
HCRYPTKEY key;
CryptGenKey(prov, CALG_DES, CRYPT_ARCHIVABLE, &key);
Описание функции CryptGenKey: http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx

Импортирование ключа осуществляется функцией CryptImportKey
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
разработать децентрализованное p2p приложение на C++ ninininiini C/C++ Сетевое программирование 1 13.08.2013 10:09
Разработать приложение Windows Forms Игорь123456 C# (си шарп) 5 19.02.2013 09:27
Разработать приложение на С# с базами данных Puma1911 C# (си шарп) 7 19.12.2012 13:42
Разработать приложение в соответствии с заданием BOTTAK Помощь студентам 2 29.10.2010 09:46
Задача:в вижуал с++ Разработать приложение-сервер и приложение (смотри дальше сообщение) Мила777 Фриланс 2 21.10.2009 11:05