将对象标识符映射到加密算法
注意
本文特定于 .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 属性是 <nameEntry> 元素中 name 属性的值。 必须先从算法名称映射到类,然后才能将对象标识符映射到简单名称。