ENCRYPTBYASYMKEY(Transact-SQL)ENCRYPTBYASYMKEY (Transact-SQL)

이 항목은 다음에 적용됩니다.예SQL Server(2008부터)예Azure SQL Database아니요Azure SQL Data Warehouse 아니요병렬 데이터 웨어하우스 THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)yesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

비대칭 키를 사용하여 데이터를 암호화합니다.Encrypts data with an asymmetric key.

항목 링크 아이콘 Transact-SQL 구문 규칙Topic link icon Transact-SQL Syntax Conventions

구문Syntax


EncryptByAsymKey ( Asym_Key_ID , { 'plaintext' | @plaintext } )  

인수Arguments

Asym_Key_IDAsym_Key_ID
데이터베이스에 있는 비대칭 키의 ID입니다.Is the ID of an asymmetric key in the database. int합니다.int.

일반 텍스트cleartext
비대칭 키로 암호화될 데이터 문자열입니다.Is a string of data that will be encrypted with the asymmetric key.

@plaintext
형식의 변수는 nvarchar, char, varchar, 이진, varbinary, 또는 nchar 비대칭 키로 암호화 될 데이터가 들어 있는입니다.Is a variable of type nvarchar, char, varchar, binary, varbinary, or nchar that contains data to be encrypted with the asymmetric key.

반환 형식Return Types

varbinary 최대 크기가 8, 000 바이트입니다.varbinary with a maximum size of 8,000 bytes.

주의Remarks

비대칭 키로 암호화 및 암호 해독을 수행하면 대칭 키로 암호화 및 암호 해독을 수행하는 것보다 비용이 훨씬 많이 듭니다.Encryption and decryption with an asymmetric key is very costly compared with encryption and decryption with a symmetric key. 테이블의 사용자 데이터와 같은 큰 데이터 집합을 암호화하는 경우 비대칭 키를 사용하지 않는 것이 좋습니다.We recommend that you not encrypt large datasets, such as user data in tables, using an asymmetric key. 대신 강력한 대칭 키를 사용하여 데이터를 암호화하고 비대칭 키를 사용하여 대칭 키를 암호화해야 합니다.Instead, you should encrypt the data using a strong symmetric key and encrypt the symmetric key using an asymmetric key.

EncryptByAsymKey 반환 NULL 입력 특정 알고리즘에 따라 바이트 수를 초과 하는 경우.EncryptByAsymKey return NULL if the input exceeds a certain number of bytes, depending on the algorithm. 제한은: 512 비트 RSA 키는 최대 53 바이트를 암호화할 수, 1024 비트 키는 최대 117 바이트를 암호화할 수 있습니다 및 2048 비트 키는 최대 245 바이트를 암호화할 수 있습니다.The limits are: a 512 bit RSA key can encrypt up to 53 bytes, a 1024 bit key can encrypt up to 117 bytes, and a 2048 bit key can encrypt up to 245 bytes. SQL ServerSQL Server에서 인증서와 비대칭 키는 모두 RSA 키에 대한 래퍼입니다.(Note that in SQL ServerSQL Server, both certificates and asymmetric keys are wrappers over RSA keys.)

Examples

다음 예에서는 @cleartext에 저장된 텍스트를 비대칭 키 JanainaAsymKey02로 암호화합니다.The following example encrypts the text stored in @cleartext with the asymmetric key JanainaAsymKey02. 암호화된 데이터는 ProtectedData04 테이블에 삽입됩니다.The encrypted data is inserted into the ProtectedData04 table.

INSERT INTO AdventureWorks2012.Sales.ProtectedData04   
    VALUES( N'Data encrypted by asymmetric key ''JanainaAsymKey02''',  
    EncryptByAsymKey(AsymKey_ID('JanainaAsymKey02'), @cleartext) );  
GO  

관련 항목:See Also

Decryptbyasymkey( Transact SQL ) DECRYPTBYASYMKEY (Transact-SQL)
CREATE ASYMMETRIC KEY (Transact-SQL) CREATE ASYMMETRIC KEY (Transact-SQL)
암호화 계층Encryption Hierarchy