![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 23.05.2010
Сообщений: 19
|
![]()
Здравствуйте.
Помогите, пожалуйста, исправить нужные места в проге, чтобы она стала удовлетворять условиям моего варианта задания. Язык программирования - Delphi - в данном случае не особо важно, т.к. просмотреть и исправить нужно часть, связанную с CryptoAPI. Прога использует некий файл ФФФ. Этот файл ФФФ должен быть зашифрован при помощи функций криптографического интерфейса операционной системы Windows (CryptoAPI) с использованием сеансового ключа, генерируемого на основе вводимой пользователем парольной фразы. 1. При запуске программы появляется окно с вводом той самой парольной фразы, на её основе создается сеансовый ключ. а) Далее, если файла ФФФ нет на диске, прога создает временный файл ККК. б) Если же файл ФФФ уже существует, то с помощью созданного сеансового ключа он расшифровывается во временный файл ККК, затем проверяется "правильность" парольной фразы (по наличию записи ADMIN - не суть). 2. Прога работает с файлом ККК: читает, изменяет его содержимое... 3. После завершения работы проги файл ККК зашифровывается в файл ФФФ, затем временный файл ККК удаляется. Варианты использования алгоритмов шифрования и хеширования выбираются в соответствии с выданным преподавателем заданием. Мой вариант задания: Тип симметричного шифрования - Блочный Используемый режим шифрования - Обратная связь по шифротексту Добавление к ключу случайного значения - Да Используемый алгоритм хеширования - MD2 Для доступа к функциям CryptoAPI следует использовать интерфейсный модуль wincrypt.pas, полученый от преподавателя. Во вложенном архиве находится весь проект проги. Если не хотите скачивать, то вот wincrypt.pas Код:
|
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 23.05.2010
Сообщений: 19
|
![]()
а вот и сам код проги (наконец то
![]() Код:
Последний раз редактировалось Fissa; 23.10.2010 в 10:27. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 23.05.2010
Сообщений: 19
|
![]()
Дополненительные пояснения:
1. алгоритм хеширования - MD2 - это я и так сделала - вставила CALG_MD2 вместо CALG_MD5 как изначально было 2. режим шифрования - Обратная связь по шифротексту - тоже сделала - вставила CRYPT_MODE_CFB вместо CRYPT_MODE_CBC как изначально было 3. Мне надо проверить только: Тип симметричного шифрования - Блочный (а не Потоковый) Добавление к ключу случайного значения - Да (а не Нет ![]() Если б мне подсказали хоть где это вообще смотреть (мож в каких функциях CryptoAPI). Хотя бы просто СКАЖИТЕ, у меня БЛОЧНОЕ ШИФРОВАНИЕ В ПРОГЕ ИЛИ НЕТ и ЕСТЬ ЛИ В ПРОГЕ ДОБАВЛЕНИЕ К КЛЮЧУ СЛУЧАЙНОГО ЗНАЧЕНИЯ? |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 23.05.2010
Сообщений: 19
|
![]()
Усё, я разобралась:
1. Тип симметричного шифрования - Блочный. Это надо смотреть RC2 (Блоковый алгоритм шифрования) либо RC4 (Потоковый алгоритм шифрования). У меня в проге всё правильно - CALG_RC2. 2. Добавление к ключу случайного значения. Это надо в функции CryptDeriveKey вместо параметра CRYPT_EXPORTABLE использовать фразу CRYPT_EXPORTABLE or CRYPT_CREATE_SALT. Вот и весь ответ. Тема закрыта. P.S.: Пришлось прочесть немало литературы, чтобы разобраться в CryptoAPI и в данном мне задании. |
![]() |
![]() |
![]() |
#5 |
Новичок
Джуниор
Регистрация: 26.06.2012
Сообщений: 2
|
![]()
Fissa, чёш сама с собой общаещся
![]() |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 26.01.2009
Сообщений: 360
|
![]()
vladislav147, тема двухлетней давности
|
![]() |
![]() |
![]() |
#7 |
Новичок
Джуниор
Регистрация: 07.12.2012
Сообщений: 1
|
![]()
Может у человека крик души по этому поводу и после двух лет. ну а если в тему то возможно будет полезная статья с примеров . Пример в приложенном файле.
http://fk-uran.com.ua/delphi-crypto-...troki-parolem/ |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
что тут нужно изменить? | asd48 | Общие вопросы C/C++ | 2 | 08.04.2009 21:47 |
Что нужно изменить, чтоб запрос заработал? | Paul Hindenburg | PHP | 1 | 08.10.2008 09:45 |