我有一个 exe,它使用 Castle Windsor 来实现插件机制。我需要验证我加载的插件是否来自我(而不是一些恶意代码)。
我相信我需要使用非对称密钥(可能是 SNK?)对 exe 和 dll 进行签名。首先,这是正确的吗?我该怎么做?其次,如何在 exe 中以编程方式验证 dll 来自受信任的来源?
如果您对 DLL 进行了签名,那么在运行时您可以检查StrongName http://security.policy.strongname.aspx在加载 DLL 之前。
您还可以检查用于签名的公钥是否是您期望的公钥。
要获取程序集的公钥,您可以执行以下操作:
Assembly assembly = ...
AssemblyName assemblyName = assembly.GetName();
byte[] publicKey = assemblyName.GetPublicKey();
我刚刚查了一下,StackOverflow 上已经有一个很好的答案:
https://stackoverflow.com/a/1350012/106159 https://stackoverflow.com/a/1350012/106159
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)