Blowfish в C # - PullRequest
       13

Blowfish в C #

2 голосов
/ 29 марта 2009

Моя программа на C ++ использует стандартную Blowfish.

Моя программа на C # использует алгоритм шифрования Blowfish с здесь .

Оба приложения (клиенты TCP) выполняют одно и то же: получают пакет, шифруют его и затем отправляют обратно. Если сервер распознает пакет как обычный - он отправляет другой пакет, в противном случае он закрывает сокет. Я следовал всем функциям в C ++ и C #, и все то же самое, кроме шифрования.

В файле C ++ у меня только одно шифрование. Тем не менее, в C # Blowfish у меня есть

  • BlowfishCBC
  • BlowfishCFB
  • BlowfishECB
  • BlowfishSimple

Я не знал, какой из них в моем проекте C ++, поэтому я случайно выбрал BlowfishECB. Но это не работает, сервер (у меня нет доступа к нему) не распознает пакет как зашифрованный.

Мой вопрос: существует ли стандартная Blowfish для C # или, если она единственная, как мне решить эту проблему? EDIT:

Код C ++ blowfish можно увидеть здесь .

1 Ответ

3 голосов
/ 29 марта 2009

Нет, для C # нет стандартного феера. Он будет использовать то, что вы скажете. (Редактировать: я думаю, что я неправильно понял. Если вы хотите, чтобы стандартная рыбалка для C # соответствовала стандартам, я бы порекомендовал Bouncy Castle Crypto. Это порт с Java и содержит большинство документированных стандартов RFC. Посмотрите на модульные тесты примеры используйте классы. Всякий раз, когда я использовал его в последний раз, документации не хватало, но модульные тесты - довольно хороший пример того, как все складывается вместе.)

Вопрос, который вы хотите задать, заключается в том, какой вариант Blowfish использует ваше приложение C ++. Какую библиотеку вы используете в приложении C ++ для шифрования? Как только вы это узнаете, вы сможете сделать правильный выбор в своем приложении C #.

Я лично больше всего сталкиваюсь с CBC. «Простой», вероятно, стоило бы попробовать.

Вам также придется иметь дело с такими вещами, как проверка соответствия вектора инициализации в зависимости от того, какой из них вы используете.

...