RSACryptoServiceProvider.VerifyHash Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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[])
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
true
pokud je podpis platný; v opačném případě . false
Výjimky
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)
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
true
pokud je podpis platný; v opačném případě . false
Výjimky
hashAlgorithm
je null
nebo Empty.
padding
se nerovná Pkcs1.