2012-02-09 1 views
2

Мне нужно использовать компонент Delphi для шифрования файла, который затем можно дешифровать с помощью свободно доступной утилиты. Я экспериментировал без успеха. Ниже я перечислю свои требования и то, что я уже сделал.Шифрование файла с использованием компонента Delphi и дешифрование с помощью какой-либо другой утилиты

Требования:

  • Бесплатный компонент с источником, если это возможно.
  • Совместим с Delphi XE. Таким образом, меня беспокоит только 32-разрядная поддержка.
  • Должен быть способен расшифровать результат утилитой, которая свободно доступна для Windows.

Вот что я пробовал:

  • LockBox 2, Rijndael 128-бит CBC
  • LockBox 3, AES 128-бит CBC
  • DCPCrypt2
  • Дешифровка каждый из вышеперечисленного с OpenSSL.exe

Прочие переменные:

  • Я еще не пробовал Windows CryptoAPI. Это следующий пункт в моем списке, чтобы попытаться.
  • Я бы предпочел использовать AES, но это не строгое требование.
  • Я бы предпочел не использовать частную/открытую пару ключей. Я бы предпочел, чтобы расшифровка была возможна с использованием пароля или парольной фразы.

Я знаю, что компоненты SecureBlackBox высоко ценятся. Если вы знаете, по опыту, что компонент SBB может делать то, что я ищу, тогда я бы хотел узнать об этом. Это дорогой вариант, но мы рассмотрим, будет ли он определенно работать.

Пожалуйста, воздержитесь от общих рекомендаций, чтобы попробовать компонент, который может работа. Я одновременно делаю поиск в Google и пытаюсь найти любой жизнеспособный вариант, который я могу найти. :) Мне бы очень хотелось услышать отзывы от тех, у кого есть опыт работы над тем, что я пытаюсь сделать.

+0

Мы используем код PGP SecureBlackBox для обмена данными из приложения Delphi Win32 с помощью машины Solaris, которая с успехом использует OpenGPG (и не требует больших усилий). Если у вас уже есть открытые и закрытые ключи, это довольно просто. Однако я не пытался использовать их с компонентами SSL и OpenSSL. Я могу только сказать, что компоненты PGP работают очень хорошо. –

ответ

6

Если ваша цель - только Windows, почему бы вам просто не написать эту бесплатную полезную утилиту?

Вы убедитесь, что он соответствует тому же точному алгоритму, что и в вашем приложении.

И вы можете добавить наш Open Source unit в свой список - у меня только added CBC/ECB/CFB/OFB/CTR режимов в AES 128, 192 или 256 бит - и шаблон заполнения PKCS7. И у вас есть быстрые функции MD5, SHA1 или SHA256 для создания своего ключа с паролем.

У вас есть полный исходный код, и он работает от Delphi 5 до XE2, является FAST, поддерживается и кросс-платформенным.

Я использую этот блок для безопасного шифра между Delphi и C# код:

  • На стороне Delphi, я использую TAESCBC.EncryptPKCS7/TAESCBC.DecryptPKCS7;
  • На стороне C# я использую the official example available on MSDN, который использует тот же самый точный шаблон шифрования.

Это проверенная и простая схема.

+0

Большое спасибо за ответ и ссылки. Мы уже изучали, можем ли мы предоставить утилиту дешифрования. Поскольку это относится к государственной сертификации, я не уверен, что мы сможем. Но предоставленная вами информация выглядит очень полезной, и я обязательно буду исследовать ее дальше. –

+0

Обновление: мы можем создать собственную утилиту для дешифрования. Задача решена. –

+0

@JonRobertson Насколько ваша утилита будет работать с официальными тестовыми векторами в соответствии с используемым шифрованием, проблем нет. Благодаря! –