Sdílet prostřednictvím


RSACryptoServiceProvider.VerifyHash Metoda

Definice

Ověří platnost digitálního podpisu.

Přetížení

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

Ověří platnost digitálního podpisu určením hodnoty hash v podpisu pomocí poskytnutého veřejného klíče a porovnáním s zadanou hodnotou hash.

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

Ověří platnost digitálního podpisu určením hodnoty hash v podpisu pomocí zadaného algoritmu hash a odsazení a porovnáním s zadanou hodnotou hash.

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

Zdroj:
RSACryptoServiceProvider.Unix.cs
Zdroj:
RSACryptoServiceProvider.Unix.cs
Zdroj:
RSACryptoServiceProvider.Unix.cs

Ověří platnost digitálního podpisu určením hodnoty hash v podpisu pomocí poskytnutého veřejného klíče a porovnáním s zadanou hodnotou hash.

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);
override this.VerifyHash : byte[] * string * byte[] -> bool
member this.VerifyHash : byte[] * string * byte[] -> bool
Public Function VerifyHash (rgbHash As Byte(), str As String, rgbSignature As Byte()) As Boolean

Parametry

rgbHash
Byte[]

Hodnota hash podepsaných dat.

str
String

Identifikátor hashovacího algoritmu (OID) použitý k vytvoření hodnoty hash dat.

rgbSignature
Byte[]

Data podpisu, která se mají ověřit.

Návraty

truepokud je podpis platný; v opačném případě . false

Výjimky

Parametr rgbHash je null.

-nebo-

Parametr rgbSignature je null.

Zprostředkovatele kryptografických služeb (CSP) nelze získat.

-nebo-

Podpis nelze ověřit.

Příklady

Následující příklad ukazuje, jak použít metodu VerifyHash k ověření podpisu. Tento příklad kódu je součástí většího příkladu pro metodu SignHash .

bool VerifyHash( RSAParameters rsaParams, array<Byte>^signedData, array<Byte>^signature )
{
   RSACryptoServiceProvider^ rsaCSP = gcnew RSACryptoServiceProvider;
   SHA1Managed^ hash = gcnew SHA1Managed;
   array<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 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

Poznámky

Tato metoda ověřuje RSA digitální podpis vytvořený metodou SignHash . Podpis se ověřuje získáním hodnoty hash z podpisu pomocí veřejného klíče, kterým byl podepsán, a porovnáním této hodnoty s hodnotou hash zadaných dat.

Platnými hashovacími algoritmy jsou SHA1 a MD5. Identifikátor algoritmu lze odvodit z názvu hodnoty hash pomocí metody .MapNameToOID

Kvůli kolizím sha1 a MD5 microsoft doporučuje model zabezpečení založený na algoritmu SHA256 nebo lepším.

Viz také

Platí pro

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

Zdroj:
RSACryptoServiceProvider.Unix.cs
Zdroj:
RSACryptoServiceProvider.Unix.cs
Zdroj:
RSACryptoServiceProvider.Unix.cs

Ověří platnost digitálního podpisu určením hodnoty hash v podpisu pomocí zadaného algoritmu hash a odsazení a porovnáním s zadanou hodnotou hash.

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

Parametry

hash
Byte[]

Hodnota hash podepsaných dat.

signature
Byte[]

Data podpisu, která se mají ověřit.

hashAlgorithm
HashAlgorithmName

Název hashovacího algoritmu použitého k vytvoření hodnoty hash.

padding
RSASignaturePadding

Odsazení.

Návraty

truepokud je podpis platný; v opačném případě . false

Výjimky

hashAlgorithm je null nebo Empty.

hash je null.

-nebo-

padding je null.

padding se nerovná Pkcs1.

Platí pro