将对象标识符映射到加密算法

注意

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

请参阅