2009-03-29 6 views
0

this oneと同じことをするC#では魚介類がないようです。私は外部として使用することにしました。 C#で。 しかし、まず私は外部として使用しようとします。Cでのblowfishの使い方C#での外部DLLとしての

C++ blowfishを見て、関数のパラメータを変更する必要があるかどうかを教えてください(そのうちのいくつかはC#に含まれていないLPBYTEです)。

また、外部DLLとして使用する方法を教えてもらえます(私は既にdllとしてコンパイルしています)が、C++の関数パラメータは私を苛立たせています。

編集: 私は、初期化、エンコード、デコードのみを呼び出す必要があります。

ありがとうございます!

+0

C++の環境は何ですか?/CLRサポートでコンパイルできますか?もしそうなら、C#DLLを呼び出すのはかなり簡単です。唯一の問題は、特定のスイッチに互換性がないため、CLRサポートでコンパイルするときに問題が発生することがあります。 – AaronLS

答えて

2

これまでのプロジェクトでこれと同様の問題が発生しました。 C++コードを見て、以前の投稿で疑われたようにECBを使用しています。 Blowfish.NET(Arkainの提案)を使用して異なる結果が得られる理由がわかります。 C++コードは、入力を2つのDWORDに変換します。 Blowfish.NETは、内部で暗号化するために使用するDWORDのバイトオーダーを保持することで、正しいことを行うと信じています。

例: C++コードでは、0102030405060708のバイトは0x04030201と0x08070605になります。 .NET実装は0x01020304と0x05060708になります。

+0

@Dave Cluderay、ありがとう!その問題を解決するための詳細情報を教えていただけますか?バイトオーダーを修正する方法 –

+0

@Dave、もし私が何をしたのか見てみると非常に感謝します(//コメントをチェックしてください)http://pastebin.com/m2df92629 最終的に、私が何か間違っていたらpastebin.comを使って、どうすればいいのか教えてください。 ありがとう、Dave! –

+0

OK - 新しいコメントが表示されます - これは問題ありません。 –

関連する問題