Megosztás a következőn keresztül:


HASHBYTES (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példányAzure Synapse AnalyticsElemzési platformrendszer (PDW)SQL Analytics-végpont a Microsoft FabricbenRaktár a Microsoft FabricbenSQL-adatbázis a Microsoft Fabricben

Az SQL Serverben az MD2, MD4, MD5, SHA, SHA1 vagy SHA2 hash-et adja vissza.

Transact-SQL szintaxis konvenciók

Szemantika

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

Arguments

<algorithm>
Azonosítja a hash-algoritmust, amelyet a bemenet hasheléséhez kell használni. Ez egy kötelező érv, nincs alapértelmezett érvelés. Az idézőjelek szükségesek. Az SQL Server 2016-tól (13.x) kezdve minden algoritmus a SHA2_256 és SHA2_512 kivételével elavult.

@input
Megad egy változót, amely tartalmazza a hashelendő adatokat. @input Varchar, nvarchar vagy varbináris.

'Bemenet'
Megad egy kifejezést, amely egy hashelendő karakterre vagy bináris stringre értékel.

A kimenet megfelel az algoritmus szabványának: 128 bit (16 bájt) MD2, MD4 és MD5 esetén; 160 bit (20 bájt) a SHA és SHA1 számára; 256 bit (32 bájt) SHA2_256 és 512 bit (64 bájt) SHA2_512.

Érvényes: SQL Server 2012 (11.x) és újabb verziókra

SQL Server 2014 (12.x) és korábbi verzióknál az engedélyezett bemeneti értékek 8000 bájtra korlátozottak.

Visszaadott érték

varbináris (maximum 8000 bájt)

Megjegyzések

Fontold meg az vagy BINARY_CHECKSUM alternatívák CHECKSUM használatát egy hash érték kiszámítására.

Az MD2, MD4, MD5, SHA és SHA1 algoritmusok az SQL Server 2016 (13.x) megjelenésétől kezdve elavulttá váltak. Használjon inkább SHA2_256 vagy SHA2_512. A régebbi algoritmusok továbbra is működnek, de elavúsítási eseményt indítanak.

Példák

Adja vissza egy változó hash-jét

A következő példa adja vissza a SHA2_256változóban tárolt nvarchar adatok @HashThishash-jét.

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

Adja vissza egy táblázatoszlop hash-jét

A következő példa a táblázat Test1oszlopában c1 szereplő értékek SHA2_256 hash-jét adja vissza.

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;  

Itt van az eredmények összessége.

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

Lásd még:

Válassz egy titkosítási algoritmustCHECKSUM_AGG (Transact-SQL)CHECKSUM (Transact-SQL)BINARY_CHECKSUM (Transact-SQL)