HASHBYTES (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL Analytics-Endpunkt in Microsoft Fabric Warehouse in Microsoft Fabric
Gibt den MD2-, MD4-, MD5-, SHA-, SHA1- oder SHA2-Hash der zugehörigen Eingabe in SQL Server zurück.
Transact-SQL-Syntaxkonventionen
Syntax
HASHBYTES ( '<algorithm>', { @input | 'input' } )
<algorithm>::= MD2 | MD4 | MD5 | SHA | SHA1 | SHA2_256 | SHA2_512
Argumente
<algorithm>
Identifiziert den für das Hashing der Eingabe zu verwendenden Hashalgorithmus. Dies ist ein erforderliches Argument ohne Standardwert. Die einfachen Anführungszeichen müssen eingegeben werden. Ab SQL Server 2016 (13.x) gelten alle anderen Algorithmen als SHA2_256 und SHA2_512 als veraltet.
@input
Gibt eine Variable mit den Daten an, für die das Hashing ausgeführt werden soll. @input
ist varchar, nvarchar oder varbinary.
input
Gibt einen Ausdruck an, der zu einer Zeichenfolge oder Binärzeichenfolge ausgewertet wird, für die das Hashing ausgeführt werden soll.
Die Ausgabe entspricht dem Algorithmusstandard: 128 Bits (16 Bytes) für MD2, MD4 und MD5; 160 Bits (20 Bytes) für SHA und SHA1; 256 Bits (32 Bytes) für SHA2_256 und 512 Bits (64 Bytes) für SHA2_512.
Gilt für: SQL Server 2012 (11.x) und höher
Bei SQL Server 2014 (12.x) und früher sind zulässige Eingabewerte auf 8.000 Byte beschränkt.
Rückgabewert
varbinary (maximal 8.000 Byte)
Hinweise
Erwägen Sie die Verwendung von CHECKSUM
oder BINARY_CHECKSUM
als Alternativen zur Berechnung eines Hashwerts.
Die Algorithmen MD2, MD4, MD5, SHA und SHA1 sind ab SQL Server 2016 (13.x) veraltet. Verwenden Sie stattdessen SHA2_256 oder SHA2_512. Ältere Algorithmen funktionieren weiterhin, lösen jedoch ein Ereignis aus, das auf die Veraltung hinweist.
Beispiele
Zurückgeben des Hashcodes einer Variablen
Im folgenden Beispiel wird der SHA2_256
-Hash der in der @HashThis
-Variablen gespeicherten nvarchar-Daten zurückgegeben.
DECLARE @HashThis NVARCHAR(32);
SET @HashThis = CONVERT(NVARCHAR(32),'dslfdkjLK85kldhnv$n000#knf');
SELECT HASHBYTES('SHA2_256', @HashThis);
Zurückgeben des Hashcodes einer Tabellenspalte
Im folgenden Beispiel wird der SHA2_256-Hash der Werte in der Spalte c1
der Tabelle Test1
zurückgegeben.
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;
Hier sehen Sie das Ergebnis.
-------------------------------------------
0x741238C01D9DB821CF171BF61D72260B998F7C7881D90091099945E0B9E0C2E3
0x91DDCC41B761ACA928C62F7B0DA61DC763255E8247E0BD8DCE6B22205197154D
(2 row(s) affected)
Weitere Informationen
Auswählen eines VerschlüsselungsalgorithmusCHECKSUM_AGG (Transact-SQL)CHECKSUM (Transact-SQL)BINARY_CHECKSUM (Transact-SQL)