Sdílet prostřednictvím


ENCRYPTBYPASSWORDová fráze (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL databáze v Microsoft Fabric

Šifrujte data pomocí heslové fráze pomocí algoritmu TRIPLE DES s délkou bitů 128 klíčů.

Poznámka:

SQL Server 2017 a pozdější verze šifrují data pomocí heslové fráze pomocí klíče AES256.

Transact-SQL konvence syntaxe

Syntaxe

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

Arguments

Heslo
Heslo, ze kterého lze vygenerovat symetrický klíč.

@passphrase
Proměnná typu nvarchar, char, varchar, binární, varbinární nebo nchar obsahující heslo pro generování symetrického klíče.

Čistý text
Čistý text je třeba zašifrovat.

@cleartext
Proměnná typu nvarchar, char, varchar, binární, varbinární nebo nchar obsahující čistý text. Maximální velikost je 8 000 bajtů.

add_authenticator
Označuje, zda bude autentizátor zašifrován spolu s čistým textem. 1, pokud bude přidán autentizátor. int.

@add_authenticator
Označuje, zda bude hash zašifrován spolu s otevřeným textem.

autentikátor
Dat, ze kterých lze odvodit autentizátor. Sysname.

@authenticator
Proměnná obsahující data, ze kterých lze odvodit autentizátor.

Návratové typy

varbinární s maximální velikostí 8 000 bajtů.

Poznámky

Heslo je heslo, které obsahuje mezery. Výhodou použití heslové fráze je, že je snazší si zapamatovat smysluplnou frázi nebo větu než si zapamatovat srovnatelně dlouhý řetězec znaků.

Tato funkce nekontroluje složitost hesel.

Examples

Následující příklad aktualizuje záznam v SalesCreditCard tabulce a šifruje hodnotu čísla kreditní karty uložené ve sloupci CardNumber_EncryptedbyPassphrase, přičemž jako autentizátor používá primární klíč.

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  

Viz také

DECRYPTBYPASSWORD: (Transact-SQL)
Hierarchie šifrování