Udostępnij za pomocą


ENCRYPTBYPASSWORDa (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBaza danych SQL w usłudze Microsoft Fabric

Szyfruj dane za pomocą hasła za pomocą algorytmu TRIPLE DES o długości bitów 128 kluczy.

Uwaga / Notatka

SQL Server 2017 i późniejsze szyfrują dane za pomocą hasła za pomocą klucza AES256.

Transact-SQL konwencje składni

Składnia

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

Arguments

hasło
Hasło, z którego generuje się symetryczny klucz.

@passphrase
Zmienna typu nvarchar, char, varchar, binarny, varbinary lub nchar zawierająca hasło, z którego można wygenerować symetryczny klucz.

Tekst jawny
Tekst czysty do zaszyfrowania.

@cleartext
Zmienna typu nvarchar, char, varchar, binarny, varbinary lub nchar zawierająca tekst jawny. Maksymalny rozmiar to 8 000 bajtów.

add_authenticator
Wskazuje, czy uwierzytelniacz będzie szyfrowany razem z tekstem czystym. 1, jeśli zostanie dodany uwierzytelniający. int.

@add_authenticator
Wskazuje, czy hash zostanie zaszyfrowany razem z tekstem czystym.

Wystawca uwierzytelnienia
Dane, z których można wyprowadzić uwierzytelniacz. sysname.

@authenticator
Zmienna zawierająca dane, z których można wyprowadzić uwierzytelniającego.

Typy zwracane

varbinary o maksymalnym rozmiarze 8 000 bajtów.

Uwagi

Hasło to hasło, które zawiera spacje. Zaletą używania hasła jest to, że łatwiej jest zapamiętać znaczącą frazę lub zdanie niż zapamiętać równie długi ciąg znaków.

Ta funkcja nie sprawdza złożoności haseł.

Przykłady

Poniższy przykład aktualizuje rekord w tabeli i szyfruje wartość numeru karty kredytowej zapisanego SalesCreditCard w kolumnie CardNumber_EncryptedbyPassphrase, używając klucza pierwotnego jako uwierzytelniacza.

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  

Zobacz też

HASŁO DESZYFROWANIA (Transact-SQL)
Hierarchia szyfrowania