方法一:毫无疑问,那就是尽量不要把机密的代码发布出去。这也是最可靠的方法,然而很多情况下,我们做不到这一点,遇到这种情况我们也只好继续寻求其他解决方式……
方法二:通过制定StrongNameIdentityPermissionAttribute(感谢hBifTs提供的文章)来限制调用者的范围,如下所示:
private static string Decrypt(byte[] d)
{
}
SecurityManager.SecurityEnabled = false;
这样一来,我们的安全设置依然形同虚设。根据这种方法的原理--检查被调用者的身份,我想到了下面方法:方法三:在System.Diagnostics名字空间下有一个StackTrace的东东(我前不久刚用它写了一个写日志时详细记录Stack的辅助类,过两天我会把这个东东也Post上来 -- 哈哈,做了一次广告!),有了它,我们便可以得到调用者的信息,然后……好,废话少说,看看代码就知道了:
ReflectionTrap1.zip