HASHBYTE (Transact-SQL)
Berlaku untuk: Titik akhir analitik SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Platform System (PDW) SQL di Microsoft Fabric Warehouse di Microsoft Fabric
Mengembalikan hash MD2, MD4, MD5, SHA, SHA1, atau SHA2 dari inputnya di SQL Server.
Sintaks
HASHBYTES ( '<algorithm>', { @input | 'input' } )
<algorithm>::= MD2 | MD4 | MD5 | SHA | SHA1 | SHA2_256 | SHA2_512
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 set hasilnya.
-------------------------------------------
0x741238C01D9DB821CF171BF61D72260B998F7C7881D90091099945E0B9E0C2E3
0x91DDCC41B761ACA928C62F7B0DA61DC763255E8247E0BD8DCE6B22205197154D
(2 row(s) affected)
Lihat Juga
Pilih algoritmaenkripsi CHECKSUM_AGG (Transact-SQL)CHECKSUM (Transact-SQL)BINARY_CHECKSUM (Transact-SQL)