SignedXml.CheckSignature返回的布尔值到底代表什么?

What does the Boolean returned by SignedXml.CheckSignature actually represent?

SignedXml.CheckSignature(AsymmetricAlgorithm key)returnstrue(或false)时,这到底代表什么?

这是否意味着 Signature 有效?或者当您再次尝试创建 Signature 时,您创建的任何 Signature 对象都匹配吗?

SignedXml.CheckSignature(AsymmetricAlgorithm key) 进行三项检查:

  1. 检查签名中 SignedInfo 的散列是否由提供的密钥签名。这确保数据来自具有相应 public 密钥的发件人。
  2. 检查 SignedInfo 中的散列是否正确。这确保 Signature 块的内容未被篡改。
  3. 在应用列出的转换后,检查所有引用的摘要是否正确。这样可以保证签名保护的数据不被篡改。

请注意,此时您不知道实际签署了哪些数据 - 它可能只是文档的一部分。在信任数据之前,您还必须 validate the signatures.