在.NET标准中计算程序集的哈希
在.NET标准中,是否有任何方法可以计算程序集的加密哈希?非常重要的是,除非在程序集中修改了某些内容(例如,它被重新构建),否则此哈希保持不变 例如,假设使用.NET Framework,我们将执行以下操作在.NET标准中计算程序集的哈希,.net,.net-core,.net-standard,.net,.net Core,.net Standard,在.NET标准中,是否有任何方法可以计算程序集的加密哈希?非常重要的是,除非在程序集中修改了某些内容(例如,它被重新构建),否则此哈希保持不变 例如,假设使用.NET Framework,我们将执行以下操作 var assembly=assembly.GetCallingAssembly(); var散列=新散列(程序集); var hashVal=hash.GenerateHash(新的SHA512Managed()); 我已尝试按如下所示序列化程序集,但出现错误 未处理的异常: Syste
var assembly=assembly.GetCallingAssembly();
var散列=新散列(程序集);
var hashVal=hash.GenerateHash(新的SHA512Managed());
我已尝试按如下所示序列化程序集,但出现错误
未处理的异常:
System.Runtime.Serialization.SerializationException:类型
程序集中的“System.Reflection.RuntimeAssembly”
'System.Private.CoreLib,版本=4.0.0.0,区域性=中性,
PublicKeyToken=7cec85d7bea7798e'未标记为可序列化
var assembly=assembly.GetCallingAssembly();
BinaryFormatter formatter=新的BinaryFormatter();
MemoryStream stream=新的MemoryStream();
序列化(流、程序集);
SHA512 sha=SHA512.Create();
var hash=Convert.ToBase64String(sha.ComputeHash(stream));
程序集文件的哈希值可能重复<代码>程序集.GetCallingAssembly().Location程序集签名自.NET 1.0以来已可用。另一方面,出于安全原因,不赞成使用BinaryFormatter。您不知道BinaryFormatter将产生什么。它很可能是一个有签名的恶意程序集,甚至有一个代码分析规则