对于已签名的程序集,使用以下代码检查公钥
AssemblyName an = AssemblyName.GetAssemblyName(dllFile);
Assembly assembly = Assembly.Load(an);
if (assembly != null)
{
AssemblyName asmName = assembly.GetName();
byte[] key = asmName.GetPublicKey();
bool isSignedAsm = key.Length > 0;
}
使用公钥的字节数组,攻击者是否可以重新生成与该公钥关联的私钥,并创建一组看似由我签名的程序集?
我想知道这一点,因为我想使用公钥的字节数组来防止加载未由特定私钥签名的程序集。 (通过将它与我已经拥有和信任的已知公钥进行比较)