DecryptByKeyAutoCert(Transact-SQL)

새 설치: 2006년 4월 14일

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

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

구문

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

인수

  • cert_ID
    대칭 키 암호화에 사용되는 인증서의 ID입니다. int.
  • cert_password
    인증서 개인 키를 보호하는 암호입니다. 개인 키가 데이터베이스 마스터 키로 보호되는 경우에는 NULL이 될 수 있습니다. varchar.
  • 'ciphertext'
    키로 암호화된 데이터입니다. varbinary.
  • @ciphertext
    키로 암호화된 데이터를 포함하는 varbinary 유형 변수입니다.
  • add_authenticator
    인증자가 일반 텍스트와 함께 암호화되었는지 여부를 나타냅니다. 데이터 암호화 시 EncryptByKey로 전달된 값과 같아야 합니다.**인증자가 사용된 경우 1이 됩니다. int.
  • @add_authenticator
    인증자가 일반 텍스트와 함께 암호화되었는지 여부를 나타냅니다. 데이터 암호화 시 EncryptByKey로 전달된 값과 같아야 합니다.
  • authenticator
    인증자가 생성될 데이터입니다. EncryptByKey에 제공된 값과 일치해야 합니다. sysname.
  • @authenticator
    인증자가 생성될 데이터를 포함하는 변수입니다. EncryptByKey에 제공된 값과 일치해야 합니다.

반환 유형

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

주의

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

사용 권한

public 역할의 멤버 자격이 필요합니다.

다음 예에서는 DecryptByKeyAutoCert를 사용하여 암호를 해독하는 코드를 단순화하는 방법을 보여 줍니다. 이 코드는 새로 설치한 AdventureWorks 데이터베이스 복사본에서 실행해야 합니다.

--Create the keys and certificate.
USE AdventureWorks;
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;

참고 항목

참조

OPEN SYMMETRIC KEY(Transact-SQL)
EncryptByKey(Transact-SQL)
DecryptByKey(Transact-SQL)

관련 자료

암호화 계층

도움말 및 정보

SQL Server 2005 지원 받기