0

似乎 C# 中没有和这个一样的河豚。所以我决定将它用作外部,如果它不能再次工作,那么在 C# 中翻译整个河豚。但首先我会尝试用作外部。

您能否看一下C++ 河豚并告诉我是否必须更改函数参数(其中一些是 LPBYTE,不包含在 C# 中)。

另外,如果您告诉我如何将它们用作外部 dll(我已经将其编译为 dll),我将不胜感激,但是 C++ 中的函数参数让我感到沮丧。

编辑: 我只需要调用 Initialize、Encode 和 Decode。

提前致谢!

4

1 回答 1

2

我在以前的项目中遇到过类似的问题。查看 C++ 代码后,它使用的是您在上一篇文章中怀疑的 ECB。我想我明白了使用 Blowfish.NET 获得不同结果的原因(Arkain 的建议)。C++ 代码在加密时将输入转换为两个 DWORD。我相信 Blowfish.NET 将通过在其内部用于加密的 DWORD 中保留字节顺序来做正确的事情。

例如:在 C++ 代码中,字节 0102030405060708 变为 0x04030201 和 0x08070605。.NET 实现将变为 0x01020304 和 0x05060708。

于 2009-03-29T13:01:39.807 回答