ENCRYPTBYPASSPHRASE (Transact-SQL)
Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance
Enkripsi data dengan frasa sandi menggunakan algoritma TRIPLE DES dengan panjang 128 bit kunci.
Catatan
SQL Server 2017 dan versi yang lebih baru mengenkripsi data dengan frasa sandi menggunakan kunci AES256.
Sintaks
EncryptByPassPhrase ( { 'passphrase' | @passphrase }
, { 'cleartext' | @cleartext }
[ , { add_authenticator | @add_authenticator }
, { authenticator | @authenticator } ] )
Argumen
frase sandi
Frase sandi untuk menghasilkan kunci konten.
@passphrase
Variabel jenis nvarchar, char, varchar, biner, varbinary, atau nchar yang berisi frase sandi untuk menghasilkan kunci konten.
cleartext
Cleartext yang akan dienkripsi.
@cleartext
Variabel jenis nvarchar, char, varchar, binary, varbinary, atau nchar yang berisi cleartext. Ukuran maksimum adalah 8.000 byte.
add_authenticator
Menunjukkan apakah pengautentikasi akan dienkripsi bersama dengan cleartext. 1 jika pengautentikasi akan ditambahkan. int.
@add_authenticator
Menunjukkan apakah hash akan dienkripsi bersama dengan cleartext.
Authenticator
Data untuk mendapatkan pengautentikasi. sysname.
@authenticator
Variabel yang berisi data untuk memperoleh pengautentikasi.
Jenis Kembalian
varbinary dengan ukuran maksimum 8.000 byte.
Keterangan
Frase sandi adalah kata sandi yang menyertakan spasi. Keuntungan menggunakan frasa sandi adalah lebih mudah untuk mengingat frasa atau kalimat yang bermakna daripada mengingat string karakter yang sebanding panjang.
Fungsi ini tidak memeriksa kompleksitas kata sandi.
Contoh
Contoh berikut memperbarui rekaman dalam SalesCreditCard
tabel dan mengenkripsi nilai nomor kartu kredit yang disimpan dalam kolom CardNumber_EncryptedbyPassphrase
, menggunakan kunci utama sebagai pengautentikasi.
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