다음을 통해 공유


RSACryptoServiceProvider.VerifyHash 메서드

정의

디지털 서명이 유효한지 확인합니다.

오버로드

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

제공된 공용 키를 사용하여 서명의 해시 값을 판별한 다음 제공된 해시 값과 비교하여 디지털 서명이 유효한지 확인합니다.

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

지정된 해시 알고리즘 및 패딩을 사용해서 시그니처의 해시 값을 확인하고 지정된 해시 값과 비교하여 디지털 시그니처가 유효한지 확인합니다.

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

Source:
RSACryptoServiceProvider.Unix.cs
Source:
RSACryptoServiceProvider.Unix.cs
Source:
RSACryptoServiceProvider.Unix.cs

제공된 공용 키를 사용하여 서명의 해시 값을 판별한 다음 제공된 해시 값과 비교하여 디지털 서명이 유효한지 확인합니다.

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

매개 변수

rgbHash
Byte[]

서명된 데이터의 해시 값입니다.

str
String

데이터의 해시 값을 만드는 데 사용되는 해시 알고리즘 식별자(OID)입니다.

rgbSignature
Byte[]

확인할 서명 데이터입니다.

반환

서명이 유효한 경우 true이고, 그러지 않으면 false입니다.

예외

rgbHash 매개 변수가 null인 경우

또는

rgbSignature 매개 변수가 null인 경우

CSP(암호화 서비스 공급자)를 가져올 수 없습니다.

또는

서명을 확인할 수 없습니다.

예제

다음 예제에서는 메서드를 사용하여 VerifyHash 서명을 확인하는 방법을 보여줍니다. 이 코드 예제는에 대해 제공 된 큰 예제의 일부는 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

설명

이 메서드는 메서드에서 RSA 생성된 SignHash 디지털 서명을 확인합니다. 서명은 서명된 공개 키를 사용하여 서명에서 해시 값을 가져오고 해당 값을 제공된 데이터의 해시 값과 비교하여 확인됩니다.

유효한 해시 알고리즘은 및 MD5입니다SHA1. 알고리즘 식별자는 메서드를 사용하여 MapNameToOID 해시 이름에서 파생될 수 있습니다.

SHA1 및 MD5의 충돌 문제로 인해 MICROSOFT는 SHA256 이상을 기반으로 하는 보안 모델을 권장합니다.

추가 정보

적용 대상

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

Source:
RSACryptoServiceProvider.Unix.cs
Source:
RSACryptoServiceProvider.Unix.cs
Source:
RSACryptoServiceProvider.Unix.cs

지정된 해시 알고리즘 및 패딩을 사용해서 시그니처의 해시 값을 확인하고 지정된 해시 값과 비교하여 디지털 시그니처가 유효한지 확인합니다.

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

매개 변수

hash
Byte[]

서명된 데이터의 해시 값입니다.

signature
Byte[]

확인할 서명 데이터입니다.

hashAlgorithm
HashAlgorithmName

해시 값을 만드는 데 사용되는 해시 알고리즘 이름입니다.

padding
RSASignaturePadding

패딩입니다.

반환

서명이 유효한 경우 true이고, 그러지 않으면 false입니다.

예외

hashAlgorithmnull 또는 Empty입니다.

hash이(가) null인 경우

또는

padding이(가) null인 경우

paddingPkcs1와 다른 경우

적용 대상