RSACryptoServiceProvider.VerifyHash Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Comprueba que una firma digital sea válida.
Sobrecargas
VerifyHash(Byte[], String, Byte[]) |
Comprueba si una firma digital es válida determinando el valor hash de la firma usando la clave pública proporcionada y comparándola con el valor hash proporcionado. |
VerifyHash(Byte[], Byte[], HashAlgorithmName, RSASignaturePadding) |
Comprueba que una firma digital es válida determinando el valor hash de la firma con el algoritmo hash y el relleno especificados, y comparándolo con el valor hash proporcionado. |
VerifyHash(Byte[], String, Byte[])
Comprueba si una firma digital es válida determinando el valor hash de la firma usando la clave pública proporcionada y comparándola con el valor hash proporcionado.
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
Parámetros
- rgbHash
- Byte[]
Valor hash de los datos firmados.
- str
- String
Identificador del algoritmo hash (OID) usado para crear el valor hash de los datos.
- rgbSignature
- Byte[]
Datos de la firma que se van a comprobar.
Devoluciones
true
si la firma es válida; en caso contrario, false
.
Excepciones
No se puede adquirir el proveedor de servicios criptográficos (CSP).
o bien
No se puede comprobar la firma.
Ejemplos
En el ejemplo siguiente se muestra cómo usar el VerifyHash método para comprobar una firma. Este ejemplo de código forma parte de un ejemplo más grande proporcionado para el SignHash método .
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
Comentarios
Este método comprueba la RSA firma digital generada por el SignHash método . La firma se comprueba obteniendo el valor hash de la firma mediante la clave pública con la que se firmó y comparando ese valor con el valor hash de los datos proporcionados.
Los algoritmos hash válidos son SHA1 y MD5. El identificador de algoritmo se puede derivar del nombre hash mediante el MapNameToOID método .
Debido a problemas de colisión con SHA1 y MD5, Microsoft recomienda un modelo de seguridad basado en SHA256 o superior.
Consulte también
Se aplica a
VerifyHash(Byte[], Byte[], HashAlgorithmName, RSASignaturePadding)
Comprueba que una firma digital es válida determinando el valor hash de la firma con el algoritmo hash y el relleno especificados, y comparándolo con el valor hash proporcionado.
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
Parámetros
- hash
- Byte[]
Valor hash de los datos firmados.
- signature
- Byte[]
Datos de la firma que se van a comprobar.
- hashAlgorithm
- HashAlgorithmName
Nombre del algoritmo hash que se utiliza para crear el valor hash.
- padding
- RSASignaturePadding
Relleno.
Devoluciones
true
si la firma es válida; en caso contrario, false
.
Excepciones
hashAlgorithm
es null
o Empty.
padding
no es igual a Pkcs1.