Partilhar via


ENCRYPTBYPASSPHRASE (Transact-SQL)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure

Criptografe os dados com uma senha com o uso do algoritmo TRIPLE DES com um comprimento de chave de 128 bits.

Observação

O SQL Server 2017 e versões posteriores criptografam dados com uma frase secreta usando uma chave AES256.

Convenções de sintaxe de Transact-SQL

Sintaxe

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

Argumentos

passphrase
Uma frase secreta 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 secreta da qual gerar uma chave simétrica.

cleartext
O texto não criptografado a ser criptografado.

@cleartext
Uma variável do tipo nvarchar, char, varchar, binary, varbinary ou nchar contendo 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 no máximo 8.000 bytes.

Comentários

Uma frase secreta é uma senha que inclui espaços. A vantagem de usar uma frase secreta é 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 AdventureWorks2022;  
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  

Consulte Também

DECRYPTBYPASSPHRASE (Transact-SQL)
Hierarquia de criptografia