Share via


RSACryptoServiceProvider.VerifyHash Metode

Definisi

Memverifikasi bahwa tanda tangan digital valid.

Overload

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

Memverifikasi bahwa tanda tangan digital valid dengan menentukan nilai hash dalam tanda tangan menggunakan kunci umum yang disediakan dan membandingkannya dengan nilai hash yang disediakan.

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

Memverifikasi bahwa tanda tangan digital valid dengan menentukan nilai hash dalam tanda tangan menggunakan algoritma hash dan padding yang ditentukan, dan membandingkannya dengan nilai hash yang disediakan.

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

Sumber:
RSACryptoServiceProvider.Unix.cs
Sumber:
RSACryptoServiceProvider.Unix.cs
Sumber:
RSACryptoServiceProvider.Unix.cs

Memverifikasi bahwa tanda tangan digital valid dengan menentukan nilai hash dalam tanda tangan menggunakan kunci umum yang disediakan dan membandingkannya dengan nilai hash yang disediakan.

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

Parameter

rgbHash
Byte[]

Nilai hash dari data yang ditandatangani.

str
String

Pengidentifikasi algoritma hash (OID) yang digunakan untuk membuat nilai hash data.

rgbSignature
Byte[]

Data tanda tangan yang akan diverifikasi.

Mengembalikan

true jika tanda tangan valid; jika tidak, false.

Pengecualian

Parameternya rgbHash adalah null.

-atau-

Parameternya rgbSignature adalah null.

Penyedia layanan kriptografi (CSP) tidak dapat diperoleh.

-atau-

Tanda tangan tidak dapat diverifikasi.

Contoh

Contoh berikut menunjukkan cara menggunakan VerifyHash metode untuk memverifikasi tanda tangan. Contoh kode ini adalah bagian dari contoh yang lebih besar yang disediakan untuk metode .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

Keterangan

Metode ini memverifikasi RSA tanda tangan digital yang dihasilkan oleh SignHash metode . Tanda tangan diverifikasi dengan mendapatkan nilai hash dari tanda tangan menggunakan kunci umum yang ditandatanganinya, dan membandingkan nilai tersebut dengan nilai hash dari data yang disediakan.

Algoritma hash yang valid adalah SHA1 dan MD5. Pengidentifikasi algoritma dapat berasal dari nama hash dengan menggunakan MapNameToOID metode .

Karena masalah tabrakan dengan SHA1 dan MD5, Microsoft merekomendasikan model keamanan berdasarkan SHA256 atau lebih baik.

Lihat juga

Berlaku untuk

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

Sumber:
RSACryptoServiceProvider.Unix.cs
Sumber:
RSACryptoServiceProvider.Unix.cs
Sumber:
RSACryptoServiceProvider.Unix.cs

Memverifikasi bahwa tanda tangan digital valid dengan menentukan nilai hash dalam tanda tangan menggunakan algoritma hash dan padding yang ditentukan, dan membandingkannya dengan nilai hash yang disediakan.

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

Parameter

hash
Byte[]

Nilai hash dari data yang ditandatangani.

signature
Byte[]

Data tanda tangan yang akan diverifikasi.

hashAlgorithm
HashAlgorithmName

Nama algoritma hash yang digunakan untuk membuat nilai hash.

padding
RSASignaturePadding

Padding.

Mengembalikan

true jika tanda tangan valid; jika tidak, false.

Pengecualian

hashAlgorithm adalah null atau Empty.

hashadalah null.

-atau-

paddingadalah null.

padding tidak sama dengan Pkcs1.

Berlaku untuk