C # и Delphi. Прочитайте XML в зашифрованном виде и заархивированы в Delphi с C #

2

У нас есть закодированный, а затем заархивированный файл XML-документа. Этот файл зашифрован в Delphi пакетом под названием "DcpCrypt", используя Rijndael и SHA256:

fRijndael:=TDCP_rijndael.Create(nil);
fRijndael.BlockSize:=16;
fRijndael.CipherMode:=cmCBC;
fSHA256:=TDCP_sha256.Create(nil);
fSHA256.HashSize:=256;

Является ли С# способным его шифровать? Я много искал в googled, и кажется, что DcpCrypt вычисляет его ключи, отличные от .NET lib.

Большое спасибо заранее

  • 1
    Да, это. В худшем случае: напишите Delphi DLL, которую вы можете вызвать из C #, которая расшифровывает ее. К счастью, для C # существует несколько решений для шифрования / дешифрования, и даже архивирование / разархивирование не должно быть проблемой. Я просто не знаю, какие из них вы могли бы использовать.
Теги:
encryption

1 ответ

3
Лучший ответ

Короткий ответ - да. Длительный ответ - "это зависит".

Говоря словами "вычисляет свои ключи", я предполагаю, что вы имеете в виду генерировать ключи шифрования. Как генерируются ключи, совершенно не имеет отношения к процессу использования этих ключей для шифрования и дешифрования.

DcpCrypt был написан до того, как Rijndael стал стандартом AES (который давно). Предполагая, что предварительная стандартная реализация Rijndael такая же, как AES (она, вероятно,), совместимость AES для шифрования/дешифрования должна быть нейтральной для языка и реализации, зависит только от вариантов реализации.

Но вот тр... идентификация этих параметров и установка их одинаковой как на коде шифрования, так и на коде дешифрования может быть сложной.

Каковы параметры?

  • Цепочный режим;
  • IV
  • Как сообщение соленое? если вообще?
  • Прекращение: AES не указывает схему блокировки для режимов цепочки без ключа.
  • В общем случае с шифрами, отличными от AES, у вас также может возникнуть проблема с указанием того, как кодируются ключи - но это не должно быть проблемой с AES.

После определения всех параметров, которые использует шифр, вы должны применить те же самые параметры к расшифровщику. Эта проблема не специфична для Rijndael/AES, но универсальна для всех шифров.

Кстати, если вы зажимаете для целей сжатия, шифрование, следующее за молнией, бессмысленно. Zip не сжимает файлы, содержимое которых уже является максимально случайным, например, зашифрованный текст.

Я рекомендую вам использовать TurboPower LockBox 3 для шифрования в AES, а не DcpCrypt. Dave Barton DCPcrypt был хорош в этот день, но он не соответствует стандартам, и он не безопасно управляет IV.

Каковы параметры, если вы используете LockBox? Если вы используете кодек LockBox 3 AES с режимом CBC, соление и IV управляются, устанавливая IV в nonce и предварительно испуская его. Для сообщений длиной более одного блока блокировка достигается зашифрованием зашифрованного текста. Для сообщений короче, чем один блок, режим цепочки принудительно переходит в 8-битный CFB, который работает с ключевыми потоками.

Также ваш комментарий о шифровании файла с SHA256 не имеет смысла. SHA - это хэш, а не шифр.

  • 0
    Шон, вы предоставили очень полезную информацию в своем ответе. Я наткнулся на этот поиск информации о шифровании LockBox по сравнению со стандартными вариантами шифрования. Например, я хочу зашифровать что-нибудь с помощью LockBox и иметь возможность расшифровать это с помощью OpenSSL.exe. Могу ли я связаться с вами напрямую? Я могу в конечном итоге опубликовать еще один вопрос здесь на SO. Если я это сделаю, я отредактирую этот комментарий со ссылкой на мой вопрос. Я обеспокоен тем, что у меня есть множество вопросов на данный момент. ;) Спасибо
  • 0
    LockBox имеет активный набор форумов на lockbox.seanbdurkin.id.au. Вы можете оставить свой вопрос там. LB3 также включает в себя оболочку для OpenSSL, но только в отношении его функции подписи и проверки, а не функций шифрования / дешифрования. - Но даже тогда я смогу вам помочь.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню