Как использовать Blowfish в C++ в качестве внешней dll в C#

StackOverflow https://stackoverflow.com/questions/694454

  •  22-08-2019
  •  | 
  •  

Вопрос

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

Не могли бы вы взглянуть на С++ иглобрюхая рыба и скажите мне, нужно ли мне изменить параметры функции (некоторые из них - LPBYTE, которые не включены в C#).

Кроме того, я был бы благодарен, если бы вы рассказали мне, как использовать их в качестве внешней dll (у меня она уже скомпилирована как dll), но параметры функции в C++ меня расстраивают.

Редактировать:Мне нужно вызвать только Initialize, Encode и Decode.

Заранее спасибо!

Это было полезно?

Решение

У меня была похожая проблема в предыдущем проекте.Посмотрев на код C++, он использует ECB, как вы и подозревали в предыдущем посте.Думаю, я понимаю причину, по которой вы получаете разные результаты, используя Blowfish.NET (предложение Аркаина).Код C++ преобразует входные данные в два DWORD во время шифрования.Я считаю, что Blowfish.NET поступит правильно, сохранив порядок байтов в DWORD, которые он использует для внутреннего шифрования.

Например:В коде C++ байты 0102030405060708 становятся 0x04030201 и 0x08070605.Реализация .NET будет иметь номера 0x01020304 и 0x05060708.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top