RSACryptoServiceProvider.VerifyHash 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
디지털 서명이 유효한지 확인합니다.
오버로드
VerifyHash(Byte[], String, Byte[]) |
제공된 공용 키를 사용하여 서명의 해시 값을 판별한 다음 제공된 해시 값과 비교하여 디지털 서명이 유효한지 확인합니다. |
VerifyHash(Byte[], Byte[], HashAlgorithmName, RSASignaturePadding) |
지정된 해시 알고리즘 및 패딩을 사용해서 시그니처의 해시 값을 확인하고 지정된 해시 값과 비교하여 디지털 시그니처가 유효한지 확인합니다. |
VerifyHash(Byte[], String, Byte[])
제공된 공용 키를 사용하여 서명의 해시 값을 판별한 다음 제공된 해시 값과 비교하여 디지털 서명이 유효한지 확인합니다.
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
입니다.
예외
예제
다음 예제에서는 메서드를 사용하여 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)
지정된 해시 알고리즘 및 패딩을 사용해서 시그니처의 해시 값을 확인하고 지정된 해시 값과 비교하여 디지털 시그니처가 유효한지 확인합니다.
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
입니다.
예외
hashAlgorithm
이 null
또는 Empty입니다.
padding
이 Pkcs1와 다른 경우
적용 대상
.NET