Bagikan melalui


HASHBYTE (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)Titik akhir analitik SQL di Microsoft FabricWarehouse di Microsoft Fabric

Mengembalikan hash MD2, MD4, MD5, SHA, SHA1, atau SHA2 dari inputnya di SQL Server.

Konvensi sintaks transact-SQL

Sintaksis

HASHBYTES ( '<algorithm>', { @input | 'input' } )  
  
<algorithm>::= MD2 | MD4 | MD5 | SHA | SHA1 | SHA2_256 | SHA2_512   

Catatan

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

Argumen

<algorithm>
Mengidentifikasi algoritma hashing yang akan digunakan untuk hash input. Ini adalah argumen yang diperlukan tanpa default. Tanda kutip tunggal diperlukan. Dimulai dengan SQL Server 2016 (13.x), semua algoritma selain SHA2_256, dan SHA2_512 tidak digunakan lagi.

@input
Menentukan variabel yang berisi data yang akan di-hash. @input adalah varchar, nvarchar, atau varbinary.

'input'
Menentukan ekspresi yang mengevaluasi ke karakter atau string biner yang akan di-hash.

Output sesuai dengan standar algoritma: 128 bit (16 byte) untuk MD2, MD4, dan MD5; 160 bit (20 byte) untuk SHA dan SHA1; 256 bit (32 byte) untuk SHA2_256, dan 512 bit (64 byte) untuk SHA2_512.

Berlaku untuk: SQL Server 2012 (11.x) dan yang lebih baru

Untuk SQL Server 2014 (12.x) dan yang lebih lama, nilai input yang diizinkan dibatasi hingga 8000 byte.

Tampilkan Nilai

varbinary (maksimum 8000 byte)

Keterangan

Pertimbangkan untuk menggunakan CHECKSUM atau BINARY_CHECKSUM sebagai alternatif untuk menghitung nilai hash.

Algoritma MD2, MD4, MD5, SHA, dan SHA1 tidak digunakan lagi dimulai dengan SQL Server 2016 (13.x). Gunakan SHA2_256 atau SHA2_512 sebagai gantinya. Algoritma yang lebih lama akan terus berfungsi, tetapi mereka akan meningkatkan peristiwa penghentian.

Contoh

Mengembalikan hash variabel

Contoh berikut mengembalikan SHA2_256 hash data nvarchar yang disimpan dalam variabel @HashThis.

DECLARE @HashThis NVARCHAR(32);  
SET @HashThis = CONVERT(NVARCHAR(32),'dslfdkjLK85kldhnv$n000#knf');  
SELECT HASHBYTES('SHA2_256', @HashThis);  

Mengembalikan hash kolom tabel

Contoh berikut mengembalikan hash SHA2_256 nilai dalam kolom c1 dalam tabel Test1.

CREATE TABLE dbo.Test1 (c1 NVARCHAR(32));  
INSERT dbo.Test1 VALUES ('This is a test.');  
INSERT dbo.Test1 VALUES ('This is test 2.');  
SELECT HASHBYTES('SHA2_256', c1) FROM dbo.Test1;  

Berikut adalah hasil yang ditetapkan.

-------------------------------------------  
0x741238C01D9DB821CF171BF61D72260B998F7C7881D90091099945E0B9E0C2E3 
0x91DDCC41B761ACA928C62F7B0DA61DC763255E8247E0BD8DCE6B22205197154D  
(2 row(s) affected)  

Lihat Juga

Pilih algoritmaenkripsi CHECKSUM_AGG (Transact-SQL)CHECKSUM (Transact-SQL)BINARY_CHECKSUM (Transact-SQL)