【问题标题】:Calling .Net built-in classes from win32 dll从 win32 dll 调用 .Net 内置类
【发布时间】:2014-08-25 23:55:38
【问题描述】:

我被困在一个 win32 dll(C++ 中的源代码)上,我需要三重 des 解密。

客户希望使用 .Net System.Security.Cryptography 命名空间中的这些类,因为加密数据是由另一个 .net 程序准备的。

有什么(简单的)方法可以实现这一点吗?

我建议使用加密 api,但客户说它不兼容。有时解密的文本带有奇怪的尾随字符...

【问题讨论】:

  • 这不是 .Net 与加密 API 的问题,而是算法和协议的问题。这些是独立于平台的,无论它们是在 .NET 还是非托管加密 API 中实现都没有关系。
  • 你的客户完全错了。三重 DES 是一种标准。有无数兼容的实现。对你的客户坚定。如果您的客户没有足够的能力解密,那么这就是他们的问题,而不是底层算法。

标签: c# c++ winapi encryption


【解决方案1】:

通常的做法是使用托管 C++ 在 C++ 和 C# 世界之间架起一座桥梁。

另一种方法是制作a COM-friendly managed DLL

【讨论】:

  • 我明白了,但是那个win32 dll要在TCL运行时加载,不能用C++管理(其实我不太确定)
  • @Johnny 在人们花时间回答之后,在 cmets 中提供所有项目约束并不酷。如果你不把它放在问题中,那么它就不存在。你脑子里想的,没有写下来的,对我们来说是不存在的。
  • @Johnny 另一种方法是制作一个对 COM 友好的托管 DLL。见support.microsoft.com/kb/828736
  • @AlexD 谢谢 Alex,这个链接给了我答案。
  • @Johnny Great :)。我刚刚相应地更新了我的答案。 (不过,如果在这种情况下确实需要 .NET,与您的客户讨论是有意义的。)
猜你喜欢
  • 1970-01-01
  • 2010-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-26
  • 1970-01-01
相关资源
最近更新 更多