- 카테고리:
TRY_DECRYPT¶
암호 해독 중 오류가 발생하면 NULL 값을 반환하는 DECRYPT 의 특수 버전입니다.
- 참고 항목:
- ENCRYPT , ENCRYPT_RAW , DECRYPT , DECRYPT_RAW , TRY_DECRYPT_RAW 
구문¶
TRY_DECRYPT( <value_to_decrypt> , <passphrase> ,
         [ [ <additional_authenticated_data> , ] <encryption_method> ]
       )
인자¶
필수:
- value_to_decrypt
- 암호를 해독할 BINARY 값입니다. 
- passphrase
- 데이터를 암호화/암호 해독하는 데 사용할 암호 구문입니다. 암호 구문은 VARCHAR입니다. 
선택 사항:
- additional_authenticated_data
- 추가 인증 데이터(AAD)는 암호 해독 과정에서 기밀성과 신뢰성이 보장되는 추가 데이터입니다. 그러나 이 AAD는 암호화되지 않으며, ENCRYPT 또는 ENCRYPT_RAW 함수에서 반환된 값의 필드로 포함되지 않습니다. - AAD가 암호화 함수(ENCRYPT 또는 ENCRYPT_RAW)에 전달되는 경우, 동일한 AAD가 암호 해독 함수(DECRYPT 또는 DECRYPT_RAW)에 전달되어야 합니다. 암호 해독 함수에 전달된 AAD가 암호화 함수에 전달된 AAD와 일치하지 않으면 암호 해독이 실패합니다. - AAD와 - passphrase의 차이점은 암호 구문은 시크릿으로 유지되도록 의도된 반면(그렇지 않으면 암호화는 본질적으로 무가치함) AAD는 공개 상태로 둘 수 있다는 것입니다. AAD는 정보의 공개 조각 및 암호화된 값이 서로 연관되어 있음을 인증하는 데 도움이 됩니다. ENCRYPT 함수의 예 섹션에는 AAD가 일치할 때의 동작과 일치하지 않을 때의 동작을 보여주는 예가 포함되어 있습니다.- ENCRYPT_RAW 및 DECRYPT_RAW의 경우, AAD의 데이터 타입은 BINARY여야 합니다. ENCRYPT 및 DECRYPT의 경우, AAD의 데이터 타입은 VARCHAR 또는 BINARY일 수 있으며, 암호화된 값의 데이터 타입과 일치할 필요가 없습니다. - AAD는 GCM(기본값)과 같은 AEAD 지원 암호화 모드에서만 지원됩니다. 
- encryption_method
- 이 문자열은 데이터의 암호화/암호 해독에 사용할 방법을 지정합니다. 이 문자열에는 다음과 같이 하위 필드가 포함됩니다. - <algorithm>-<mode> [ /pad: <padding> ] - algorithm은 현재 다음으로 제한됩니다.- 'AES': 암호 구문이 전달되면(예: ENCRYPT) 이 함수는 AES-256 암호화(256비트)를 사용합니다. 키가 전달되면(예: ENCRYPT_RAW) 이 함수는 키 길이에 따라 128, 192 또는 256비트 암호화를 사용합니다.
 - algorithm은 대/소문자를 구분하지 않습니다.- mode는 메시지를 암호화하는 데 사용해야 하는 블록 암호 모드를 지정합니다. 다음 표는 지원되는 모드, 그리고 그중 어떤 모드가 패딩을 지원하는지 보여줍니다.- 모드 - 패딩 - 설명 - 'ECB'- 예 - 키로 모든 블록을 개별적으로 암호화합니다. 이 모드는 일반적으로 권장되지 않으며, 외부 구현과의 호환성을 위해서만 포함됩니다. - 'CBC'- 예 - 암호화된 블록은 이전 블록과 XOR됩니다. - 'GCM'- 아니요 - Galois/Counter Mode는 AEAD가 지원되는 고성능 암호화 모드입니다. AEAD는 AEAD 태그를 생성하여, 암호화된 데이터의 신뢰성과 기밀성을 추가로 보장합니다. 또한, AEAD는 AAD(추가 인증 데이터)를 지원합니다. - 'CTR'- 아니요 - 카운터 모드입니다. - 'OFB'- 아니요 - 출력 피드백입니다. 암호 텍스트는 블록의 일반 텍스트와 XOR됩니다. - 'CFB'- 아니요 - 암호 피드백은 OFB와 CBC의 조합입니다. - mode는 대/소문자를 구분하지 않습니다.- padding은 길이가 블록 크기의 배수가 아닌 메시지를 채우는 방법을 지정합니다. 패딩은 ECB 및 CBC 모드에만 적용됩니다. 다른 모드에서는 패딩이 무시됩니다. 패딩에 가능한 값은 다음과 같습니다.- 'PKCS': 블록 패딩에 PKCS5를 사용합니다.
- 'NONE': 패딩이 없습니다. 사용자는 ECB 또는 CBC 모드를 사용할 때 패딩을 처리해야 합니다.
 - padding은 대/소문자를 구분하지 않습니다.- 기본 설정: - 'AES-GCM'.- mode를 지정하지 않으면 GCM이 사용됩니다.- padding을 지정하지 않으면 PKCS가 사용됩니다.
반환¶
복호화 중에 런타임 오류가 발생하는 경우 복호화된 값을 BINARY 값 또는 NULL 값으로 반환합니다.
사용법 노트 및 예제¶
사용법 노트 및 예는 DECRYPT 함수를 참조하십시오.