CryptVerifySignature

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

포맷 

CryptVerifySignature(데이터 ; 알고리즘 ; 공개 RSA키 ; 서명)

매개 변수 

데이터 - 서명을 확인하기 위한 데이터를 나타내는 텍스트 표현식.

알고리즘 - 사용할 암호화 알고리즘의 이름(CryptAuthCode 함수 참조).

공개 RSA키 - 서명을 생성하는 데 사용된 비공개 키에 해당되는 PEM 포맷의 PKCS #1 RSA 공개 키를 나타내는 텍스트.

서명 - CryptGenerateSignature 함수에서 반환된 값과 같은 데이터를 확인할 이진 RSA 서명.

반환되는 데이터 유형 

숫자

다음 버전에서 시작됨 

18.0

설명 

서명을 확인하기 위해 이 함수는 데이터의 메시지 요약(지정된 알고리즘 사용)과 공개 RSA키서명을 암호화 해제해여 얻은 요약을 비교합니다.

RSA 공개 키는 다음 포맷을 사용해야 합니다.

복사
-----공개 키 시작-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAqqDiwrPQwVaJzOzfFVBd
...
egkXva5cYBb8PNifmlPXVb8CAwEAAQ==
-----공개 키 종료-----

서명이 데이터에 대해 유효한 경우 이 함수는 1(true)을 반환하며 서명이 유효하지 않은 경우 0(false)을 반환합니다. 매개 변수 중 하나가 유효하지 않은 경우, "?"를 반환합니다.

예제 1 

SHA-512 알고리즘을 사용하여 테이블::서명된 텍스트의 요약을 생성합니다. 테이블::서명 텍스트 필드에 저장된 서명을 Base64 디코드하고 컨테이너 데이터로 반환합니다. 테이블::공개 RSA키 필드의 값을 사용하여 서명을 암호화 해제하고 해당 서명 요약과 테이블::서명된 텍스트 필드를 기반으로 하는 요약을 비교합니다. 서명이 유효한 경우, 1을 반환합니다.

복사
CryptVerifySignature( 
    테이블::서명된 텍스트 ; "SHA512" ; 테이블::공개 RSA키 ; 
    Base64Decode( 
        테이블::서명 ; "sig.data"     
    ) 
)