문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문

DECRYPTBYKEYAUTOCERT(Transact-SQL)

대칭 키를 사용하여 해독합니다. 대칭 키는 인증서를 사용하여 자동으로 해독됩니다.

항목 링크 아이콘 Transact-SQL 구문 표기 규칙

DecryptByKeyAutoCert ( cert_ID , cert_password 
    , { 'ciphertext' | @ciphertext }
  [ , { add_authenticator | @add_authenticator } 
  [ , { authenticator | @authenticator } ] ] )

cert_ID

대칭 키 암호화에 사용되는 인증서의 ID입니다. cert_IDint입니다.

cert_password

인증서 개인 키를 보호하는 암호입니다. 개인 키가 데이터베이스 마스터 키로 보호되는 경우에는 NULL이 될 수 있습니다. cert_passwordvarchar입니다.

'ciphertext'

키로 암호화된 데이터입니다. ciphertextvarbinary입니다.

@ciphertext

키로 암호화된 데이터를 포함하는 varbinary 유형 변수입니다.

add_authenticator

인증자가 일반 텍스트와 함께 암호화되었는지 여부를 나타냅니다. 인증자가 사용된 경우 data.Is 1 암호화 시 EncryptByKey로 전달된 값과 같아야 합니다. add_authenticatorint입니다.

@add_authenticator

인증자가 일반 텍스트와 함께 암호화되었는지 여부를 나타냅니다. 데이터 암호화 시 EncryptByKey로 전달된 값과 같아야 합니다.

authenticator

인증자가 생성될 데이터입니다. EncryptByKey에 제공된 값과 일치해야 합니다. authenticatorsysname입니다.

@authenticator

인증자가 생성될 데이터를 포함하는 변수입니다. EncryptByKey에 제공된 값과 일치해야 합니다.

최대 크기가 8,000바이트인 varbinary

DecryptByKeyAutoCert는 OPEN SYMMETRIC KEY와 DecryptByKey의 기능을 결합합니다. 단일 작업으로 대칭 키를 해독한 다음 이 키를 사용하여 ciphertext를 해독합니다.

대칭 키에 대한 VIEW DEFINITION 권한 및 인증서에 대한 CONTROL 권한이 필요합니다.

다음 예에서는 DecryptByKeyAutoCert를 사용하여 암호를 해독하는 코드를 단순화하는 방법을 보여 줍니다. 이 코드는 아직 데이터베이스 마스터 키가 없는 AdventureWorks2012 데이터베이스에서 실행해야 합니다.

--Create the keys and certificate.
USE AdventureWorks2012;
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'mzkvdlk979438teag$$ds987yghn)(*&4fdg^';
OPEN MASTER KEY DECRYPTION BY PASSWORD = 'mzkvdlk979438teag$$ds987yghn)(*&4fdg^';
CREATE CERTIFICATE HumanResources037 
   WITH SUBJECT = 'Sammamish HR', 
   EXPIRY_DATE = '10/31/2009';
CREATE SYMMETRIC KEY SSN_Key_01 WITH ALGORITHM = DES
    ENCRYPTION BY CERTIFICATE HumanResources037;
GO
----Add a column of encrypted data.
ALTER TABLE HumanResources.Employee
    ADD EncryptedNationalIDNumber varbinary(128); 
OPEN SYMMETRIC KEY SSN_Key_01
   DECRYPTION BY CERTIFICATE HumanResources037 ;
UPDATE HumanResources.Employee
SET EncryptedNationalIDNumber
    = EncryptByKey(Key_GUID('SSN_Key_01'), NationalIDNumber);
GO
--
--Close the key used to encrypt the data.
CLOSE SYMMETRIC KEY SSN_Key_01;
--
--There are two ways to decrypt the stored data.
--
--OPTION ONE, using DecryptByKey()
--1. Open the symmetric key
--2. Decrypt the data
--3. Close the symmetric key
OPEN SYMMETRIC KEY SSN_Key_01
   DECRYPTION BY CERTIFICATE HumanResources037;
SELECT NationalIDNumber, EncryptedNationalIDNumber  
    AS 'Encrypted ID Number',
    CONVERT(nvarchar, DecryptByKey(EncryptedNationalIDNumber)) 
    AS 'Decrypted ID Number'
    FROM HumanResources.Employee;
CLOSE SYMMETRIC KEY SSN_Key_01;
--
--OPTION TWO, using DecryptByKeyAutoCert()
SELECT NationalIDNumber, EncryptedNationalIDNumber 
    AS 'Encrypted ID Number',
    CONVERT(nvarchar, DecryptByKeyAutoCert ( cert_ID('HumanResources037') , NULL ,EncryptedNationalIDNumber)) 
    AS 'Decrypted ID Number'
    FROM HumanResources.Employee;

커뮤니티 추가 항목

추가
표시: