Rijndael/AES从C#到VB6

Rijndael/AES从C#到VB6,c#,vb6,aes,rijndaelmanaged,rijndael,C#,Vb6,Aes,Rijndaelmanaged,Rijndael,我需要在VB6中加密一个字节数组,然后在C#(NET2.0)中解密它。和viceversa(从C#到VB6) 在C#中,我使用RijndaelManaged类。在VB6中,我使用了来自互联网的免费视频片段。最好的似乎是 但这两种实现从相同的输入开始生成不同的输出:( 也许是RijndaelManaged的IV向量有问题…我不明白 在VB6和NET之间使用Rijndael/AES的任何解决方案/经验?或三重数据集 多谢各位 更新:重要提示:运行vb6应用程序的计算机没有NET framework。

我需要在VB6中加密一个字节数组,然后在C#(NET2.0)中解密它。和viceversa(从C#到VB6)

在C#中,我使用RijndaelManaged类。在VB6中,我使用了来自互联网的免费视频片段。最好的似乎是 但这两种实现从相同的输入开始生成不同的输出:(

也许是RijndaelManaged的IV向量有问题…我不明白

在VB6和NET之间使用Rijndael/AES的任何解决方案/经验?或三重数据集

多谢各位


更新:重要提示:运行vb6应用程序的计算机没有NET framework。因此,我无法使用Interop和/或作为COM公开的网络包装器类。(

您可以使用.NET中的Interop从vb6调用C#实现。这样双方都将使用同一个库


这里有一些额外的信息:

也许我会给你一些关于静脉注射的信息

初始化向量是明文发送的数据,应该为每次加密随机生成,以使原型头攻击更难或不可能执行。当然,加密程序和解密程序必须设置相同的值

还有一些模式可以运行加密和解密。请查看此页面:。您还应该确保这两种模式相同。

我刚刚抓取了AES的Javascript实现,并将其嵌入到Windows脚本组件中,该组件可通过COM访问。然后我可以调用该组件我没有尝试VB6,因为我没有Visual Studio 6。但是对于我尝试的COM客户端,当我使用相同的密钥、IV、模式和密钥大小时,我发现加密与.NET和()类完全兼容

SlowAES有点有限;例如,我没有看到ECB模式。但是我测试的东西与.NET兼容

。该源还包括一个兼容RFC2898的PBKDF2,可从VB6使用。因此,您可以通过密码设置密钥。它与.NET中的类兼容


另请参见。

VbCorLib现在支持加密,包括Rijndael


它是免费的,类似.NET。Link:

如果你能做一个简单的C到C的转换,这是一个很好的解决方案。它与VB6/php和C配合使用非常好。看看。

你不能换一种方式吗?也就是说,将VB6实现公开为COM供C应用程序使用?我支持Barnwell先生——COM互操作也是我的选择。所有其他的在我看来,代码似乎有异味,但在VB6中使用.NET COM对象时存在一个小问题:调试器以VB6.exe的形式从程序文件中运行和加载程序集,因此调试器仅在COM对象位于GAC或程序文件中时才找到它。