Compartilhar via


ENCRYPTBYPASSPHRASE (Transact-SQL)

Criptografe os dados com uma senha, usando o algoritmo TRIPLE DES com um comprimento de 128 bits da chave.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

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

Argumentos

  • passphrase
    Uma frase de senha a partir da qual gerar uma chave simétrica.

  • @passphrase
    Uma variável do tipo nvarchar, char, varchar, binary, varbinary ou nchar contendo uma frase senha a partir da qual será gerada uma chave simétrica.

  • cleartext
    O texto não criptografado a ser criptografado.

  • @cleartext
    Uma variável de tipo nvarchar, char, varchar, binary, varbinary ou nchar que contém o texto não criptografado. O tamanho máximo é 8.000 bytes.

  • add_authenticator
    Indica se um autenticador será criptografado junto com o texto não criptografado. 1 se um autenticador for adicionado. int.

  • @add_authenticator
    Indica se um hash será criptografado junto com o texto não criptografado.

  • authenticator
    Dados do qual derivar um autenticador. sysname.

  • @authenticator
    Uma variável contendo dados a partir dos quais o autenticador será derivado.

Tipos de retorno

varbinary com tamanho máximo de 8.000 bytes.

Comentários

Uma frase de senha é uma senha que inclui espaços. A vantagem de usar uma frase de senha é o fato de ser mais fácil lembrar uma frase ou sentença significativa do que uma cadeia de caracteres comparavelmente longa.

Esta função não verifica a complexidade da senha.

Exemplos

O exemplo a seguir atualiza um registro na tabela SalesCreditCard e criptografa o valor do número de cartão de crédito armazenado na coluna CardNumber_EncryptedbyPassphrase, usando a chave primária como um autenticador.

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