Как использовать blowfish в C ++ как внешнюю DLL в C # - PullRequest
0 голосов
/ 29 марта 2009

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

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

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

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

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

1 Ответ

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

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

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

...