编程语言
首页 > 编程语言> > 在C#中验证DLL

在C#中验证DLL

作者:互联网

我有一个使用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

标签:c,net,code-signing
来源: https://codeday.me/bug/20190520/1142262.html