Share via


EncryptByPassPhrase (Transact-SQL)

以密碼片語為資料加密。

主題連結圖示Transact-SQL 語法慣例

語法

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

引數

  • passphrase
    要產生對稱金鑰的密碼片語。
  • @passphrase
    nvarcharcharvarcharbinaryvarbinary,nchar 類型的變數,其中包含要從中產生對稱金鑰的密碼片語。
  • cleartext
    要加密的純文字。
  • @cleartext
    nvarcharcharvarcharbinaryvarbinarynchar 類型的變數,其中包含純文字。大小上限是 8,000 位元組。
  • add_authenticator
    指出驗證器是否要與純文字一起加密。若要加入驗證器,則為 1。 int.
  • @add_authenticator
    指出雜湊是否要與純文字一起加密。
  • authenticator
    要衍生驗證器的資料。 sysname.
  • @authenticator
    含有要衍生驗證器之資料的變數。

傳回類型

varbinary,大小上限為 8,000 位元組。

備註

密碼片語是指包含空格的密碼。使用密碼片語的好處是,記住有意義的片語或句子,比記住相較之下冗長的字元字串容易得多。

這個函數不會檢查密碼複雜性。

範例

下列範例會更新 SalesCreditCard 資料表中的記錄,並使用主索引鍵當做驗證器,加密儲存在資料行 CardNumber_EncryptedbyPassphrase 中的信用卡號碼之值。

USE AdventureWorks;
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

請參閱

參考

DecryptByPassPhrase (Transact-SQL)

其他資源

加密階層

說明及資訊

取得 SQL Server 2005 協助