RSACryptoServiceProvider.VerifyData(Byte[], Object, Byte[]) 方法

定义

通过使用提供的公钥确定签名中的哈希值并将其与所提供的数据的哈希值进行比较,验证数字签名是否有效。

public:
 bool VerifyData(cli::array <System::Byte> ^ buffer, System::Object ^ halg, cli::array <System::Byte> ^ signature);
public bool VerifyData(byte[] buffer, object halg, byte[] signature);
override this.VerifyData : byte[] * obj * byte[] -> bool
member this.VerifyData : byte[] * obj * byte[] -> bool
Public Function VerifyData (buffer As Byte(), halg As Object, signature As Byte()) As Boolean

参数

buffer
Byte[]

已签名的数据。

halg
Object

用于创建数据的哈希值的哈希算法的名称。

signature
Byte[]

要验证的签名数据。

返回

true 如果签名有效,则为否则,为 false.

例外

参数 halgnull.

参数 halg 不是有效的类型。

示例

以下示例演示如何使用 VerifyData 该方法验证签名。 此代码示例是〈c0〉方法的一个较大示例的一部分。

public bool VerifyHash(RSAParameters rsaParams, byte[] signedData, byte[] signature)
{
    RSACryptoServiceProvider rsaCSP = new RSACryptoServiceProvider();
    SHA1Managed hash = new SHA1Managed();
    byte[] hashedData;

    rsaCSP.ImportParameters(rsaParams);
    bool dataOK = rsaCSP.VerifyData(signedData, CryptoConfig.MapNameToOID("SHA1"), signature);
    hashedData = hash.ComputeHash(signedData);
    return rsaCSP.VerifyHash(hashedData, CryptoConfig.MapNameToOID("SHA1"), signature);
}
Public Function VerifyHash(ByVal rsaParams As RSAParameters, ByVal signedData() As Byte, ByVal signature() As Byte) As Boolean
    Dim rsaCSP As New RSACryptoServiceProvider()
    Dim hash As New SHA1Managed()
    Dim hashedData() As Byte
    Dim dataOK As Boolean

    rsaCSP.ImportParameters(rsaParams)
    dataOK = rsaCSP.VerifyData(signedData, CryptoConfig.MapNameToOID("SHA1"), signature)
    hashedData = hash.ComputeHash(signedData)
    Return rsaCSP.VerifyHash(hashedData, CryptoConfig.MapNameToOID("SHA1"), signature)
End Function 'VerifyHash

注解

此方法验证 RSA 该方法生成的 SignData 数字签名。 通过使用签名的公钥从签名获取哈希值,并将该值与所提供的数据的哈希值进行比较来验证签名。

参数 halg 可以接受 、 Stringa HashAlgorithm或 a Type.

适用于

另请参阅