C# 河豚# 我的C++程序是使用标准的BooFISH。< /P>

C# 河豚# 我的C++程序是使用标准的BooFISH。< /P>,c#,blowfish,C#,Blowfish,我的C#程序使用的是来自的Blowfish加密算法 两个应用程序(TCP客户端)都做相同的事情:接收数据包,对其进行加密,然后将其发送回。如果服务器识别该数据包为正常数据包,则会发送另一个数据包,否则会关闭套接字。我遵循C++和C语言中的所有函数,除了加密之外,所有的东西都是一样的。 在C++文件中,我只有一个加密。然而,在C#河豚中,我有 河豚 河豚循环流化床 河豚 河豚 我不知道哪一个是我的C++项目中的一个,所以我随机选择了 BooFieleCB < /C>。但它不工作,服务器(我没有

我的C#程序使用的是来自的Blowfish加密算法

两个应用程序(TCP客户端)都做相同的事情:接收数据包,对其进行加密,然后将其发送回。如果服务器识别该数据包为正常数据包,则会发送另一个数据包,否则会关闭套接字。我遵循C++和C语言中的所有函数,除了加密之外,所有的东西都是一样的。 <>在C++文件中,我只有一个加密。然而,在C#河豚中,我有

  • 河豚
  • 河豚循环流化床
  • 河豚
  • 河豚
我不知道哪一个是我的C++项目中的一个,所以我随机选择了<代码> BooFieleCB < /C>。但它不工作,服务器(我没有访问权限)无法识别数据包是否已加密

我的问题是:C#是否有标准的河豚鱼?或者如果这是唯一的一种,我该如何解决这个问题? 编辑:


< > C++ BuloFiver代码。

< P>不,C语言没有标准的BoffFISH。它将使用你告诉它的任何东西。 (编辑:我想我误解了。如果你想要一个符合标准的C#blowfish,我建议你使用Bouncy Castle Crypto。它是Java的一个端口,包含了大多数有文档记录的RFC标准。看看单元测试,了解如何使用类的示例。我上次使用它时,都缺少文档,但单元测试非常好。)事物如何组合的好例子。)

你想问的问题是你的C++应用程序使用的是哪种鱼。在C++应用程序中使用什么库来进行加密?一旦知道了这一点,就可以在C#应用程序中做出正确的选择

我个人遇到的CBC最多。“简单”可能值得一试


您还必须处理一些事情,例如确保您的初始化向量匹配,这取决于您使用的初始化向量。

无论您做什么,都不要使用带后门的初始化向量,否则Jack Bauer将获取加密数据。:-)事实上克洛伊会的,但是是的!小心那些后门!我不认为它是CBC或CFB,因为在Encode中的循环中,它一次使用8个字节,并且似乎没有使用来自循环上一次迭代的任何数据。也就是说,CBC或CFB将从编码的前一个块中获取数据,并在下一个块中使用。那么问题是什么?我使用ECB,服务器无法识别。可能是“简单”模式,从未听说过。其中一个可能是非标准的。也许有人炮制了一些遵循河豚一般算法的东西,但不包括大多数标准定义的所有小块元数据。这将符合C方面的标准:我都试过了,aarnols。他们都没有工作。至于bauncycastle.com上的加密-编码/加密功能在哪里?!