Bagikan melalui


DECRYPTBYPASSPHRASE (Transact-SQL)

Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance

Fungsi ini mendekripsi data yang awalnya dienkripsi dengan frasa sandi.

Konvensi sintaks transact-SQL

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  

Lihat Juga

Pilih Algoritma Enkripsi
ENCRYPTBYPASSPHRASE (Transact-SQL)