RSACryptoServiceProvider.VerifyHash Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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[])
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)
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.
padding
tidak sama dengan Pkcs1.