#c# #c #winapi #encryption
#c# #c #winapi #шифрование
Вопрос:
Я застрял в работе над библиотекой dll win32 (исходный код на C ), для которой мне нужна расшифровка triple des.
Клиент хочет использовать эти классы в системе .Net.Безопасность.Пространство имен Cryptography, поскольку зашифрованные данные подготавливаются другой программой .net.
Есть ли какой-либо (простой) способ добиться этого?
Я предложил использовать crypto api, но клиент говорит, что это несовместимо. Иногда расшифровывался текст со странными символами в конце…
Комментарии:
1. Вопрос не в . Net по сравнению с crypto API, это вопрос алгоритмов и протоколов. Они не зависят от платформы, и не имеет значения, реализованы ли они в .NET или неуправляемом crypto api.
2. У вашего клиента это совершенно неправильно. Тройной DES является стандартом. Существует бесчисленное множество совместимых реализаций. Будьте тверды со своим клиентом. Если ваш клиент недостаточно компетентен для расшифровки, то это проблема с их стороны, а не с базовым алгоритмом.
Ответ №1:
Обычный способ сделать это — использовать управляемый C для соединения между мирами C и C #.
Альтернативой могло бы быть создание удобной для COM управляемой библиотеки DLL.
Комментарии:
1. Я понимаю, но эта библиотека dll win32 должна быть загружена во время выполнения TCL, которой нельзя управлять C (на самом деле, я не совсем уверен)
2. @Johnny нехорошо указывать все ограничения проекта в комментариях после того, как люди нашли время ответить. Если вы не указали это в вопросе, значит, оно не существует. То, что у вас в голове, а не записано, для нас не существует.
3. @Johnny Альтернативой могло бы быть создание удобной для COM управляемой библиотеки DLL. Смотрите support.microsoft.com/kb/828736 .
4. @AlexD Спасибо, Алекс, ссылка дает мне ответ.
5. @Johnny Отлично :). Я только что соответствующим образом обновил свой ответ. (Тем не менее, может иметь смысл обсудить с вашим заказчиком, действительно ли в этом случае нужен .NET.)