RSACryptoServiceProvider.VerifyHash Méthode

Définition

Vérifie qu’une signature numérique est valide.

Surcharges

Nom Description
VerifyHash(Byte[], String, Byte[])

Vérifie qu’une signature numérique est valide en déterminant la valeur de hachage dans la signature à l’aide de la clé publique fournie et en la comparant à la valeur de hachage fournie.

VerifyHash(Byte[], Byte[], HashAlgorithmName, RSASignaturePadding)

Vérifie qu’une signature numérique est valide en déterminant la valeur de hachage dans la signature à l’aide de l’algorithme de hachage et du remplissage spécifiés, et en la comparant à la valeur de hachage fournie.

VerifyHash(Byte[], String, Byte[])

Vérifie qu’une signature numérique est valide en déterminant la valeur de hachage dans la signature à l’aide de la clé publique fournie et en la comparant à la valeur de hachage fournie.

public:
 bool VerifyHash(cli::array <System::Byte> ^ rgbHash, System::String ^ str, cli::array <System::Byte> ^ rgbSignature);
public bool VerifyHash(byte[] rgbHash, string str, byte[] rgbSignature);
member this.VerifyHash : byte[] * string * byte[] -> bool
override this.VerifyHash : byte[] * string * byte[] -> bool
Public Function VerifyHash (rgbHash As Byte(), str As String, rgbSignature As Byte()) As Boolean

Paramètres

rgbHash
Byte[]

Valeur de hachage des données signées.

str
String

Identificateur d’algorithme de hachage (OID) utilisé pour créer la valeur de hachage des données.

rgbSignature
Byte[]

Données de signature à vérifier.

Retours

true si la signature est valide ; sinon, false.

Exceptions

Le rgbHash paramètre est null.

-ou-

Le rgbSignature paramètre est null.

Le fournisseur de services de chiffrement (CSP) ne peut pas être acquis.

-ou-

Impossible de vérifier la signature.

Exemples

L’exemple suivant montre comment utiliser la VerifyHash méthode pour vérifier une signature. Cet exemple de code fait partie d’un exemple plus large fourni pour la SignHash méthode.

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

Remarques

Cette méthode vérifie la RSA signature numérique produite par la SignHash méthode. La signature est vérifiée en obtenant la valeur de hachage de la signature à l’aide de la clé publique avec laquelle elle a été signée et en comparant cette valeur à la valeur de hachage des données fournies.

Les algorithmes de hachage valides sont SHA1 et MD5. L’identificateur d’algorithme peut être dérivé du nom de hachage à l’aide de la MapNameToOID méthode.

En raison de problèmes de collision avec SHA-1 et MD5, Microsoft recommande un modèle de sécurité basé sur SHA-256 ou mieux.

Voir aussi

S’applique à

VerifyHash(Byte[], Byte[], HashAlgorithmName, RSASignaturePadding)

Vérifie qu’une signature numérique est valide en déterminant la valeur de hachage dans la signature à l’aide de l’algorithme de hachage et du remplissage spécifiés, et en la comparant à la valeur de hachage fournie.

public:
 override bool VerifyHash(cli::array <System::Byte> ^ hash, cli::array <System::Byte> ^ signature, System::Security::Cryptography::HashAlgorithmName hashAlgorithm, System::Security::Cryptography::RSASignaturePadding ^ padding);
public override bool VerifyHash(byte[] hash, byte[] signature, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding);
override this.VerifyHash : byte[] * byte[] * System.Security.Cryptography.HashAlgorithmName * System.Security.Cryptography.RSASignaturePadding -> bool
Public Overrides Function VerifyHash (hash As Byte(), signature As Byte(), hashAlgorithm As HashAlgorithmName, padding As RSASignaturePadding) As Boolean

Paramètres

hash
Byte[]

Valeur de hachage des données signées.

signature
Byte[]

Données de signature à vérifier.

hashAlgorithm
HashAlgorithmName

Nom de l’algorithme de hachage utilisé pour créer la valeur de hachage.

padding
RSASignaturePadding

Le remplissage.

Retours

true si la signature est valide ; sinon, false.

Exceptions

hashAlgorithm est null ou Empty.

hash a la valeur null.

-ou-

padding a la valeur null.

padding n’est pas égal Pkcs1à .

S’applique à