繁体   English   中英

在C#中验证DLL

[英]Authenticating DLLs in C#

我有一个使用Castle Windsor来实现插件机制的exe。 我需要验证我加载的插件是否来自我(不是某些恶意代码)。

我相信我需要使用非对称密钥(可能是SNK?)对exe和dll进行签名。 首先,这是正确的,我该怎么做? 其次,如何在exe中以编程方式验证dll是否来自受信任的来源?

如果您对DLL进行签名,则在运行时可以在加载DLL之前检查其StrongName

您还可以检查用于签名的公钥是否符合您的期望。

要获取程序集的公钥,可以执行以下操作:

Assembly assembly = ...
AssemblyName assemblyName = assembly.GetName();
byte[] publicKey = assemblyName.GetPublicKey();

我刚刚检查了一下,这里的StackOverflow已经有一个很好的答案:

https://stackoverflow.com/a/1350012/106159

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM