Megosztás a következőn keresztül:


ENCRYPTBYPASSPHRASE (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL-adatbázis a Microsoft Fabricben

Titkosítsd az adatokat jelszóval a TRIPLE DES algoritmussal, amelynek 128 kulcsbites hossza.

Megjegyzés:

Az SQL Server 2017 és újabb verziók egy jelszóval titkosítják az adatokat egy AES256 kulcs segítségével.

Transact-SQL szintaxis konvenciók

Szemantika

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

Arguments

jelszó
Egy jelszó, amelyből szimmetrikus kulcsot lehet generálni.

@passphrase
Egy nvarchar, char, varchar, binary, varbinary vagy nchar típusú változó, amely egy jelszót tartalmaz, amelyből szimmetrikus kulcsot lehet generálni.

Világos szöveg
A titkosítandó szöveg.

@cleartext
Egy nvarchar, char, varchar, binary, varbinary vagy nchar típusú változó, amely tartalmazza a tiszta szöveget. A maximális méret 8 000 bájt.

add_authenticator
Jelzi, hogy egy hitelesítést titkosított-e a szöveges szöveggel együtt. 1 ha hitelesítést hozzáadnak. int.

@add_authenticator
Jelzi, hogy egy hash titkosításra kerül-e a szöveggel együtt.

Hitelesítő
Adat, amelyből autentifikátort lehet levezetni. Sysname.

@authenticator
Egy változó, amely adatokat tartalmaz, amelyből autentifikátort lehet levezetni.

Visszatérési típusok

a varbináris méret, maximális mérete 8 000 bájt.

Megjegyzések

A jelszó egy olyan jelszó, amely szóközöket tartalmaz. A jelszó használatának előnye, hogy könnyebb megjegyezni egy értelmes kifejezést vagy mondatot, mint egy viszonylag hosszú karaktersorozatot.

Ez a funkció nem ellenőrzi a jelszó összetettségét.

Példák

A következő példa frissít egy rekordot a SalesCreditCard táblázatban, és titkosítja a hitelkártyaszám értékét az oszlopban CardNumber_EncryptedbyPassphrasetárolva, az elsődleges kulcsot autentitásként használva.

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  

Lásd még:

DECRYPTBYPASSPHRASE (Transact-SQL)
Titkosítási hierarchia