c#DLL加密

时间:2011-02-23 15:23:37

标签: dll encryption code-access-security dllexport code-security

我需要加密ASP.NET页面使用的C#代码。因此,当我编译创建DLL文件时,我需要加密我的DLL文件。请帮我如何加密DLL文件...

2 个答案:

答案 0 :(得分:4)

您可以做的一件事是将加密的.dll嵌入另一个.dll中,在运行时进行解密和加载。

  • 首先,使用您要保护的所有代码编译.dll。
  • 其次,以您认为合适的方式加密.​​dll。
  • 然后,创建第二个.dll,将加密的.dll作为资源嵌入。
  • 让第二个,外部的.dll在运行时请求密钥。
  • 然后外部.dll将使用密钥解密加密的.dll。
  • 外部.dll可以调用System.AppDomain.CurrentDomain静态方法,并使用Load方法加载解密的.dll。
  • 外部.dll可能必须在ASP.NET和解密的.dll之间进行一些互操作。

tis方法有局限性。每次启动时都需要为实例提供一个密钥以使其运行。有办法拦截这个。此外,解密后的.dll将存在于内存中,一旦提供了密钥就会被解密。有办法读这个。

此方法实际上仅用于保护可能窃取硬盘驱动器的代码。这对于控制将运行代码的机器的任何人来说都不是绝对的障碍。

答案 1 :(得分:0)

我不确定你的意思是“加密”,但是如果你想混淆你的代码,有几种工具,如Dotfuscator,Smart Assembly等......