Aracılığıyla paylaş


ENCRYPTBYPASSPHRASE (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiMicrosoft Fabric'te SQL veritabanı

Verileri 128 anahtar bit uzunluğunda TRIPLE DES algoritması kullanılarak şifre ifadesiyle şifreleyin.

Uyarı

SQL Server 2017 ve sonraki sürümler, verileri bir şifre cümlesi ile AES256 anahtarı kullanarak şifreler.

Transact-SQL söz dizimi kuralları

Sözdizimi

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

Arguments

Parola
Simetrik bir anahtar oluşturmak için kullanılan bir şifre.

@passphrase
Simetrik anahtar oluşturmak için bir şifre içeren nvarchar, char, varchar, binary, varbinary veya nchar tipinde bir değişken.

Açık metin
Şifrelenecek açık metin.

@cleartext
Açık metin içeren nvarchar, char, varchar, ikili, varbinar veya nchar tipinde bir değişken. Maksimum boyut 8.000 bayttır.

add_authenticator
Bir doğrulama cihazının açık metin ile birlikte şifrelenip şifrelenmeyeceğini gösterir. 1 kimlik doğrulama cihazı eklenecek. Int.

@add_authenticator
Bir hash'in açık metinle birlikte şifrelenip şifrelenmeyeceğini gösterir.

Doğrulayıcı
Doğrulama cihazının türetilebileceği veriler. Sysname.

@authenticator
Kimlik doğrulama cihazının türetilebileceği veri içeren bir değişken.

Dönüş Türleri

varbinary , maksimum boyutu 8.000 bayt.

Açıklamalar

Şifre, boşluklar içeren bir şifredir. Parola kullanmanın avantajı, anlamlı bir ifadeyi veya cümleyi hatırlamak, nispeten uzun bir karakter dizisini hatırlamaktan daha kolay olmasıdır.

Bu fonksiyon şifre karmaşıklığını kontrol etmez.

Örnekler

Aşağıdaki örnek, SalesCreditCard tablodaki bir kaydı günceller ve birincil anahtarı doğrulama aracı olarak kullanarak sütununda CardNumber_EncryptedbyPassphrasedepolanan kredi kartı numarasının değerini şifreler.

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  

Ayrıca Bkz.

DECRYPTBYPASSPHRASE (Transact-SQL)
Şifreleme Hiyerarşisi