RSACryptoServiceProvider.VerifyHash Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Verifierar att en digital signatur är giltig.
Överlagringar
| Name | Description |
|---|---|
| VerifyHash(Byte[], String, Byte[]) |
Verifierar att en digital signatur är giltig genom att fastställa hashvärdet i signaturen med hjälp av den angivna offentliga nyckeln och jämföra den med det angivna hashvärdet. |
| VerifyHash(Byte[], Byte[], HashAlgorithmName, RSASignaturePadding) |
Verifierar att en digital signatur är giltig genom att fastställa hash-värdet i signaturen med den angivna hashalgoritmen och utfyllnadsalgoritmen och jämföra den med det angivna hash-värdet. |
VerifyHash(Byte[], String, Byte[])
Verifierar att en digital signatur är giltig genom att fastställa hashvärdet i signaturen med hjälp av den angivna offentliga nyckeln och jämföra den med det angivna hashvärdet.
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
Parametrar
- rgbHash
- Byte[]
Hash-värdet för signerade data.
- str
- String
Hash-algoritmidentifieraren (OID) som används för att skapa hash-värdet för data.
- rgbSignature
- Byte[]
Signaturdata som ska verifieras.
Returer
trueom signaturen är giltig. annars . false
Undantag
Det går inte att hämta den kryptografiska tjänstleverantören (CSP).
-eller-
Det går inte att verifiera signaturen.
Exempel
I följande exempel visas hur du använder VerifyHash metoden för att verifiera en signatur. Det här kodexemplet är en del av ett större exempel för SignHash metoden.
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
Kommentarer
Den här metoden verifierar den RSA digitala signatur som skapas av SignHash metoden. Signaturen verifieras genom att hash-värdet hämtas från signaturen med hjälp av den offentliga nyckel som den signerades med och jämför det värdet med hash-värdet för de angivna data.
Giltiga hash-algoritmer är SHA1 och MD5. Algoritmidentifieraren kan härledas från hash-namnet med hjälp MapNameToOID av metoden .
På grund av kollisionsproblem med SHA-1 och MD5 rekommenderar Microsoft en säkerhetsmodell baserad på SHA-256 eller bättre.
Se även
Gäller för
VerifyHash(Byte[], Byte[], HashAlgorithmName, RSASignaturePadding)
Verifierar att en digital signatur är giltig genom att fastställa hash-värdet i signaturen med den angivna hashalgoritmen och utfyllnadsalgoritmen och jämföra den med det angivna hash-värdet.
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
Parametrar
- hash
- Byte[]
Hash-värdet för signerade data.
- signature
- Byte[]
Signaturdata som ska verifieras.
- hashAlgorithm
- HashAlgorithmName
Namnet på hash-algoritmen som används för att skapa hash-värdet.
- padding
- RSASignaturePadding
Utfyllnad.
Returer
trueom signaturen är giltig. annars . false
Undantag
hashAlgorithm är null eller Empty.
padding är inte lika med Pkcs1.