Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Baza 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