ENCRYPTBYPASSPHRASE (Transact-SQL)
Szyfrowanie danych za pomocą hasła.
Składnia
EncryptByPassPhrase ( { 'passphrase' | @passphrase }
, { 'cleartext' | @cleartext }
[ , { add_authenticator | @add_authenticator }
, { authenticator | @authenticator } ] )
Argumenty
passphrase
Hasło dla generatora kluczsymetryczny.@passphrase
Zmienna typu nvarchar, char, varchar, binary, varbinary, lub nchar zawierających hasło dla generatora kluczsymetryczny.cleartext
zwykły tekst były szyfrowane.@cleartext
Zmienna typu nvarchar, char, varchar, binary, varbinary, lub nchar zawierające zwykły tekst.Maksymalny rozmiar jest 8000 bajtów.add_authenticator
Wskazuje, czy wystawca uwierzytelnienia będą szyfrowane razem z zwykły tekst.1, jeśli zostaną dodane wystawca uwierzytelnienia .int.@add_authenticator
Wskazuje, czy wartość mieszania będą szyfrowane razem z zwykły tekst.authenticator
Dane, z którego pochodzi wystawca uwierzytelnienia.sysname.@authenticator
Zmienna, zawierającą dane, z którego pochodzi wystawca uwierzytelnienia.
Zwracane typy
varbinaryMaksymalny rozmiar 8000 bajtów.
Uwagi
Hasło to hasło, które zawiera spacje.Zaletą używania hasła jest, że jest łatwiejsze do zapamiętania znaczenie frazy lub zdania niż porównywalnie długi ciąg znaków.
Ta funkcja nie sprawdza złożoności haseł.
Przykłady
Poniższy przykład aktualizacje rekordu w SalesCreditCard tabela i szyfruje wartość numeru karty kredytowej, przechowywane w kolumna CardNumber_EncryptedbyPassphrase, przy użyciu klucz podstawowego jako wystawca uwierzytelnienia.
USE AdventureWorks2008R2;
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