次の方法で共有


EncryptByPassPhrase (Transact-SQL)

パスフレーズでデータを暗号化します。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

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

引数

  • passphrase
    対称キーを生成するパスフレーズを指定します。
  • @passphrase
    対象キーを生成するためのパスフレーズを含む、nvarcharcharvarcharbinaryvarbinary,、または nchar 型の変数を指定します。
  • cleartext
    暗号化するクリア テキストを指定します。
  • @cleartext
    クリア テキストを含む、nvarcharcharvarcharbinaryvarbinary、または nchar 型の変数を指定します。最大サイズは 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 の参考資料の入手