ENCRYPTBYPASSPHRASE(Transact-SQL)
128비트 키 길이의 TRIPLE DES 알고리즘을 사용하여 전달 구로 데이터를 암호화합니다.
구문
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