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

DECRYPTBYKEYAUTOASYMKEY(Transact-SQL)

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

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

DecryptByKeyAutoAsymKey ( akey_ID , akey_password 
    , { 'ciphertext' | @ciphertext }
  [ , { add_authenticator | @add_authenticator } 
  [ , { authenticator | @authenticator } ] ] )

akey_ID

대칭 키 암호화에 사용되는 비대칭 키의 ID입니다. akey_IDint입니다.

akey_password

비대칭 키의 개인 키를 보호하는 암호입니다. 개인 키가 데이터베이스 마스터 키로 보호되는 경우에는 NULL이 될 수 있습니다. akey_passwordvarchar입니다.

'ciphertext'

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

@ciphertext

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

add_authenticator

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

@add_authenticator

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

authenticator

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

@authenticator

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

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

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

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

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

--Create the keys and certificate.
USE AdventureWorks2012;
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'mzkvdMlk979438teag$$ds987yghn)(*&4fdg^';
OPEN MASTER KEY DECRYPTION BY PASSWORD = 'mzkvdMlk979438teag$$ds987yghn)(*&4fdg^';
CREATE ASYMMETRIC KEY SSN_AKey 
    WITH ALGORITHM = RSA_2048 ; 
GO
CREATE SYMMETRIC KEY SSN_Key_02 WITH ALGORITHM = DES
    ENCRYPTION BY ASYMMETRIC KEY SSN_AKey;
GO
--
--Add a column of encrypted data.
ALTER TABLE HumanResources.Employee
    ADD EncryptedNationalIDNumber2 varbinary(128); 
OPEN SYMMETRIC KEY SSN_Key_02
   DECRYPTION BY ASYMMETRIC KEY SSN_AKey;
UPDATE HumanResources.Employee
SET EncryptedNationalIDNumber2
    = EncryptByKey(Key_GUID('SSN_Key_02'), NationalIDNumber);
GO
--Close the key used to encrypt the data.
CLOSE SYMMETRIC KEY SSN_Key_02;
--
--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_02
   DECRYPTION BY ASYMMETRIC KEY SSN_AKey;
SELECT NationalIDNumber, EncryptedNationalIDNumber2  
    AS 'Encrypted ID Number',
    CONVERT(nvarchar, DecryptByKey(EncryptedNationalIDNumber2)) 
    AS 'Decrypted ID Number'
    FROM HumanResources.Employee;
CLOSE SYMMETRIC KEY SSN_Key_02;
--
--OPTION TWO, using DecryptByKeyAutoAsymKey()
SELECT NationalIDNumber, EncryptedNationalIDNumber2 
    AS 'Encrypted ID Number',
    CONVERT(nvarchar, DecryptByKeyAutoAsymKey ( AsymKey_ID('SSN_AKey') , NULL ,EncryptedNationalIDNumber2)) 
    AS 'Decrypted ID Number'
    FROM HumanResources.Employee;
GO

커뮤니티 추가 항목

추가
표시: