注释
本文特定于 .NET Framework。 它不适用于 .NET 的较新版本实现,包括 .NET 6 及更高版本。
数字签名可确保数据从一个程序发送到另一个程序时不会被篡改。 通常,数字签名是通过向要签名的数据哈希应用数学函数来计算的。 设置要签名的哈希值的格式时,某些数字签名算法会将 ASN.1 对象标识符(OID)作为格式设置作的一部分追加。 OID 标识用于计算哈希的算法。 可以将算法映射到对象标识符,以扩展加密机制以使用自定义算法。 以下示例演示如何将对象标识符映射到新的哈希算法。
<configuration>
<mscorlib>
<cryptographySettings>
<cryptoNameMapping>
<cryptoClasses>
<cryptoClass MyNewHash="MyNewHashClass, MyAssembly
Culture='en', PublicKeyToken=a5d015c7d5a0b012,
Version=1.0.0.0"/>
</cryptoClasses>
<nameEntry name="NewHash" class="MyNewHash"/>
</cryptoNameMapping>
<oidMap>
<oidEntry OID="1.3.14.33.42.46" name="NewHash"/>
</oidMap>
</cryptographySettings>
</mscorlib>
</configuration>
<oidEntry> 元素包含两个属性。 OID 属性是对象标识符号。 name 属性是 < 属性的值。 必须先将算法名称映射到类,然后才能将对象标识符映射到简单名称。