DECRYPTBYPASSPHRASE (Transact-SQL)
Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance
Fungsi ini mendekripsi data yang awalnya dienkripsi dengan frasa sandi.
Sintaksis
DecryptByPassPhrase ( { 'passphrase' | @passphrase }
, { 'ciphertext' | @ciphertext }
[ , { 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
frase sandi
Frase sandi yang digunakan untuk menghasilkan kunci dekripsi.
@passphrase
Variabel jenis char, nchar, nvarchar, atau varchar yang berisi frasa sandi yang digunakan untuk menghasilkan kunci dekripsi.
'ciphertext'
String data yang dienkripsi dengan kunci. ciphertext memiliki jenis data varbinary .
@ciphertext
Variabel jenis varbinary yang berisi data yang dienkripsi dengan kunci. Variabel @ciphertext memiliki ukuran maksimum 8.000 byte.
add_authenticator
Menunjukkan apakah proses enkripsi asli disertakan, dan dienkripsi, pengautentikasi bersama dengan teks biasa. add_authenticator memiliki nilai 1 jika proses enkripsi menggunakan pengautentikasi. add_authenticator memiliki jenis data int.
@add_authenticator
Variabel yang menunjukkan apakah proses enkripsi asli disertakan, dan dienkripsi, pengautentikasi bersama dengan teks biasa. Apakah @add_authenticator memiliki nilai 1 jika proses enkripsi menggunakan pengautentikasi. @add_authenticator memiliki jenis data int.
Authenticator
Data yang digunakan sebagai dasar untuk pembuatan pengautentikasi. authenticator memiliki jenis data sysname .
@authenticator
Variabel yang berisi data yang digunakan sebagai dasar untuk pembuatan pengautentikasi. @authenticator memiliki jenis data sysname.
Jenis Kembalian
varbinary, dengan ukuran maksimum 8.000 byte.
Keterangan
DECRYPTBYPASSPHRASE
tidak memerlukan izin untuk eksekusinya. DECRYPTBYPASSPHRASE
mengembalikan NULL jika menerima frasa sandi yang salah atau informasi pengautentikasi yang salah.
DECRYPTBYPASSPHRASE
menggunakan frase sandi untuk menghasilkan kunci dekripsi. Kunci dekripsi ini tidak akan bertahan.
Jika pengautentikasi disertakan pada saat enkripsi ciphertext, DECRYPTBYPASSPHRASE
harus menerima pengautentikasi yang sama untuk proses dekripsi. Jika nilai pengautentikasi yang disediakan untuk proses dekripsi tidak cocok dengan nilai pengautentikasi yang awalnya digunakan untuk mengenkripsi data, DECRYPTBYPASSPHRASE
operasi akan gagal.
Contoh
Contoh ini mendekripsi rekaman yang diperbarui di EncryptByPassPhrase.
USE AdventureWorks2022;
-- Get the passphrase from the user.
DECLARE @PassphraseEnteredByUser NVARCHAR(128);
SET @PassphraseEnteredByUser
= 'A little learning is a dangerous thing!';
-- Decrypt the encrypted record.
SELECT CardNumber, CardNumber_EncryptedbyPassphrase
AS 'Encrypted card number', CONVERT(varchar,
DecryptByPassphrase(@PassphraseEnteredByUser, CardNumber_EncryptedbyPassphrase, 1
, CONVERT(varbinary, CreditCardID)))
AS 'Decrypted card number' FROM Sales.CreditCard
WHERE CreditCardID = '3681';
GO