ENCRYPTBYPASSPHRASE (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure 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.

Konvensi sintaks transact-SQL

Sintaksis

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

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.

Argumen

Kata 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  

Lihat Juga

DECRYPTBYPASSPHRASE (Transact-SQL)
Hierarki Enkripsi