是否可以使用RsaCryptoServiceProvider调用SignHash和VerifyHash而无需昂贵的OID查找?

时间:2011-10-03 17:23:14

标签: c# performance rsa digital-signature

我需要使用RSA(密钥大小为1024位)签署并验证大约一百条消息/秒。

对于签名消息,我使用SHA2计算数据的哈希值,然后将哈希值传递给SignHash。

rsaCryptoServiceProvider.SignHash(hashOfData, "SHA2");

验证我使用的签名

rsaCryptoServiceProvider.VerifyHash(hashOfData, "SHA2", signature);

使用null调用这些方法会引发异常。同样,使用

CryptoConfig.MapNameToOid("SHA2")

还会与域控制器联系并花费大量时间。

我也尝试过使用SHA1和MD5。有没有办法可以跳过SignHash和VerifyHash的OID查找?

1 个答案:

答案 0 :(得分:2)

似乎传递null作为第二个参数会强制使用SHA1。使用任何其他算法都需要Oid查找。