RSACryptoServiceProvider.VerifyHash 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
디지털 서명이 유효한지 확인합니다.
오버로드
| Name | Description |
|---|---|
| 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 일부입니다.
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 . 서명된 공개 키를 사용하여 서명에서 해시 값을 가져오고 해당 값을 제공된 데이터의 해시 값과 비교하여 서명을 확인합니다.
유효한 해시 알고리즘은 다음과 SHA1같습니다MD5. 알고리즘 식별자는 메서드를 사용하여 MapNameToOID 해시 이름에서 파생될 수 있습니다.
SHA-1 및 MD5의 충돌 문제로 인해 Microsoft는 SHA-256 이상에 기반한 보안 모델을 권장합니다.
추가 정보
적용 대상
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 is null 또는 Empty.
padding 가 같지 Pkcs1않습니다.