ENCRYPTBYPASSPHRASE (Transact-SQL)

Cifra datos mediante una frase de contraseña.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

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

Argumentos

  • passphrase
    Frase de contraseña a partir de la cual se genera una clave simétrica.

  • @passphrase
    Variable de tipo nvarchar, char, varchar, binary, varbinary, o nchar que contiene una frase de contraseña a partir de la cual se genera una clave simétrica.

  • cleartext
    Texto no cifrado que se va a cifrar.

  • @cleartext
    Variable de tipo nvarchar, char, varchar, binary, varbinary o nchar que contiene el texto sin cifrar. El tamaño máximo es de 8.000 bytes.

  • add_authenticator
    Indica si se cifrará un autenticador junto con el texto sin cifrar. 1 si se va a agregar un autenticador. int.

  • @add_authenticator
    Indica si se cifrará un hash junto con el texto no cifrado.

  • authenticator
    Datos a partir de los cuales se obtiene un autenticador. sysname.

  • @authenticator
    Variable que contiene datos a partir de los cuales se obtiene un autenticador.

Tipos de valor devueltos

varbinary con un tamaño máximo de 8.000 bytes.

Notas

Una frase de contraseña es una contraseña que incluye espacios. La ventaja de usar una frase de contraseña es que es más fácil recordar una frase con significado que una cadena larga de caracteres.

Esta función no comprueba la complejidad de la contraseña.

Ejemplos

En el ejemplo siguiente se actualiza un registro de la tabla SalesCreditCard y se cifra el valor del número de la tarjeta de crédito almacenado en la columna CardNumber_EncryptedbyPassphrase utilizando la clave principal como un autenticador.

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