DecryptByPassPhrase (Transact-SQL)

パスフレーズを使用して暗号化されたデータの暗号化を解除します。

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

構文

DecryptByPassPhrase (
                       { 'passphrase' | @passphrase } 
                                              , { 'ciphertext' | @ciphertext }
                       [ 
                                                    , { add_authenticator | @add_authenticator }
                                                    , { authenticator | @authenticator } 
                       ]                   
                                        ) 

引数

  • passphrase
    暗号化解除キーを作成するために使用されるパスフレーズを指定します。
  • @passphrase
    暗号化解除キーの作成で使用されるパスフレーズを含む、nvarcharcharvarchar、または nchar 型の変数です。
  • 'ciphertext'
    暗号化を解除する暗号文です。
  • @ciphertext
    暗号文を含む、varbinary 型の変数です。最大サイズは 8,000 バイトです。
  • add_authenticator
    認証子がプレーン テキストと共に暗号化されているかどうかを示します。認証子が使用されている場合は 1 です。 int.
  • @add_authenticator
    認証子がプレーン テキストと共に暗号化されているかどうかを示します。認証子が使用されている場合は 1 です。 int.
  • authenticator
    認証子のデータを指定します。データ型は sysname です。
  • @authenticator
    認証子の派生元のデータを含む変数を指定します。

戻り値の型

varbinary 型 (最大サイズは 8,000 バイト)

解説

この関数を実行するには、権限は必要ありません。

間違ったパスフレーズまたは認証子の情報が使用された場合、NULL が返されます。

パスフレーズは暗号化解除キーの生成に使用され、保存されません。

暗号文が暗号化されたときに認証子が含まれていた場合、暗号化を解除する時にその認証子を提供する必要があります。暗号化を解除する時に提供された認証子の値が、そのデータで暗号化された認証子の値と一致しない場合、暗号化解除は失敗します。

次の例では、EncryptByPassPhrase で更新されたレコードの暗号化を解除します。

USE AdventureWorks;
-- Get the pass phrase from the user.
DECLARE @PassphraseEnteredByUser nvarchar(128);
SET @PassphraseEnteredByUser 
= 'A little learning is a dangerous thing!';

-- Decrypt the encrypted record.
SELECT CardNumber, CardNumber_EncryptedbyPassphrase 
    AS 'Encrypted card number', CONVERT(nvarchar,
    DecryptByPassphrase(@PassphraseEnteredByUser, CardNumber_EncryptedbyPassphrase, 1 
    , CONVERT(varbinary, CreditCardID)))
    AS 'Decrypted card number' FROM Sales.CreditCard 
    WHERE CreditCardID = '3681';
GO

参照

関連項目

EncryptByPassPhrase (Transact-SQL)

その他の技術情報

暗号化アルゴリズムの選択

ヘルプおよび情報

SQL Server 2005 の参考資料の入手