ENCRYPTBYASYMKEY(Transact-SQL)

비대칭 키를 사용하여 데이터를 암호화합니다.

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

구문

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

인수

  • Asym_Key_ID
    데이터베이스에 있는 비대칭 키의 ID입니다. int.

  • cleartext
    비대칭 키로 암호화될 데이터 문자열입니다.

  • @plaintext
    비대칭 키로 암호화될 데이터가 들어 있는 nvarchar, char, varchar, binary, varbinary 또는 nchar 유형의 변수입니다.

반환 형식

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

주의

비대칭 키로 암호화 및 암호 해독을 수행하면 대칭 키로 암호화 및 암호 해독을 수행하는 것보다 비용이 훨씬 많이 듭니다. 테이블의 사용자 데이터와 같은 큰 데이터 집합을 암호화하는 경우 비대칭 키를 사용하지 않는 것이 좋습니다. 대신 강력한 대칭 키를 사용하여 데이터를 암호화하고 비대칭 키를 사용하여 대칭 키를 암호화해야 합니다.

알고리즘에 따라 입력이 특정 바이트 수를 초과할 경우 EncryptByAsymKey는 NULL을 반환합니다. 제한은 다음과 같습니다. 512비트 RSA 키는 최대 53바이트를 암호화할 수 있고, 1024비트 키는 최대 117 바이트를 암호화할 수 있고, 2048비트 키는 최대 245 바이트를 암호화할 수 있습니다. SQL Server에서 인증서와 비대칭 키는 모두 RSA 키에 대한 래퍼입니다.

다음 예에서는 @cleartext에 저장된 텍스트를 비대칭 키 JanainaAsymKey02로 암호화합니다. 암호화된 데이터는 ProtectedData04 테이블에 삽입됩니다.

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

참고 항목

참조

DECRYPTBYASYMKEY(Transact-SQL)

CREATE ASYMMETRIC KEY(Transact-SQL)

개념

암호화 계층