다음을 통해 공유


ENCRYPTBYPASSPHRASE(Transact-SQL)

128비트 키 길이의 TRIPLE DES 알고리즘을 사용하여 전달 구로 데이터를 암호화합니다.

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

구문

EncryptByPassPhrase ( { 'passphrase' | @passphrase } 
    , { 'cleartext' | @cleartext }
  [ , { add_authenticator | @add_authenticator }
    , { authenticator | @authenticator } ] )

인수

  • passphrase
    대칭 키 생성에 사용할 전달 구입니다.

  • @passphrase
    대칭 키를 생성할 전달 구가 들어 있는 nvarchar, char, varchar, binary, varbinary 또는 nchar 형식의 변수입니다.

  • cleartext
    암호화할 일반 텍스트입니다.

  • @cleartext
    일반 텍스트가 들어 있는 nvarchar, char, varchar, binary, varbinary 또는 nchar 형식의 변수입니다. 최대 크기는 8,000바이트입니다.

  • add_authenticator
    인증자가 일반 텍스트와 함께 암호화될지 여부를 나타냅니다. 인증자가 추가되면 1입니다. int.

  • @add_authenticator
    해시가 일반 텍스트와 함께 암호화되는지 여부를 나타냅니다.

  • authenticator
    인증자가 파생될 데이터입니다. sysname.

  • @authenticator
    인증자가 파생될 데이터를 포함하는 변수입니다.

반환 형식

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

주의

전달 구는 공백을 포함하는 암호입니다. 전달 구에는 상대적으로 긴 문자열보다 의미 있는 구나 문장이 사용되므로 기억하기가 쉽습니다.

이 함수는 암호 복잡성은 확인하지 않습니다.

다음 예에서는 SalesCreditCard 테이블의 한 레코드를 업데이트하고 기본 키를 인증자로 사용하여 CardNumber_EncryptedbyPassphrase 열에 저장된 신용 카드 번호 값을 암호화합니다.

USE AdventureWorks2008R2;
GO
-- Create a column in which to store the encrypted data.
ALTER TABLE Sales.CreditCard 
    ADD CardNumber_EncryptedbyPassphrase varbinary(256); 
GO
-- First get the passphrase from the user.
DECLARE @PassphraseEnteredByUser nvarchar(128);
SET @PassphraseEnteredByUser 
    = 'A little learning is a dangerous thing!';

-- Update the record for the user's credit card.
-- In this case, the record is number 3681.
UPDATE Sales.CreditCard
SET CardNumber_EncryptedbyPassphrase = EncryptByPassPhrase(@PassphraseEnteredByUser
    , CardNumber, 1, CONVERT( varbinary, CreditCardID))
WHERE CreditCardID = '3681';
GO