我们正在开发一个基于客户端/服务器的应用程序,它应该加密服务器端的DLL,然后在客户端安装阶段,服务器将这些DLL发送到客户端。
当客户端运行时,它将远程连接到服务器以获取解密密钥。然后它将解密DLL并使用它们来启动和使用该程序。
我的问题不是加密DLL,但我怎么能在运行中解密它们才能使用?
感谢您的时间。 卡米尔。
答案 0 :(得分:1)
您似乎正在发明一种新型安全方案,而不是使用久经考验的技术。除非您是安全专家,否则最终可能会出现一个无法保护您软件的复杂系统。
您的问题只会导致更多问题:
如果您发送带有解密密钥的DLL,为什么还要首先对它们进行加密?
“即时”的定义和建议的好处是什么?
您是否打算采用某种过期机制?一旦客户端拥有解密密钥,您就必须假设他们拥有解密密钥。
答案 1 :(得分:1)
您想要的是下载和解密DLL文件,然后使用System.Reflection
命名空间中的内容(例如Assembly.Load
和CreateInstance
)在运行时加载DLL。
尽管如此,我认为这不是那么安全。请记住,您不能控制客户。