Partilhar via


FRASE DE ENCRIPTAÇÃO BYPASSPHRASE (Transact-SQL)

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBase de dados SQL no Microsoft Fabric

Encripte dados com uma frase de acesso usando o algoritmo TRIPLE DES com um comprimento de bits de 128 chaves.

Observação

O SQL Server 2017 e versões posteriores encripta dados com uma frase-passe usando uma chave AES256.

Transact-SQL convenções de sintaxe

Sintaxe

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

Arguments

Frase-passe
Uma frase-passe 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 de acesso a partir da qual gerar uma chave simétrica.

Texto claro
O texto claro para ser encriptado.

@cleartext
Uma variável do tipo nvarchar, char, varchar, binary, varbinary ou nchar contendo o texto claro. O tamanho máximo é de 8.000 bytes.

add_authenticator
Indica se um autenticador será encriptado juntamente com o texto claro. 1 se for adicionado um autenticador. int.

@add_authenticator
Indica se um hash será encriptado juntamente com o texto claro.

autenticador
Dados a partir dos quais derivar um autenticador. sysname.

@authenticator
Uma variável contendo dados a partir dos quais se pode derivar um autenticador.

Tipos de devolução

Varbinary com tamanho máximo de 8.000 bytes.

Observações

Uma palavra-passe é uma palavra-passe que inclui espaços. A vantagem de usar uma frase-passe é que é mais fácil lembrar uma frase ou oração significativa do que memorizar uma sequência de caracteres relativamente longa.

Esta função não verifica a complexidade da palavra-passe.

Examples

O exemplo seguinte atualiza um registo na SalesCreditCard tabela e encripta o valor do número do cartão de crédito armazenado na coluna CardNumber_EncryptedbyPassphrase, usando a chave primária como 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  

Ver também

DECRYPTBYPASSPHRASE (Transact-SQL)
Hierarquia de criptografia