HASHBYTES (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Point de terminaison analytique SQL dans Microsoft FabricEntrepôt dans Microsoft Fabric

Retourne le hachage MD2, MD4, MD5, SHA, SHA1 ou SHA2 des données d'entrée dans SQL Server.

Conventions de la syntaxe Transact-SQL

Syntaxe

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

Remarque

Pour afficher la syntaxe Transact-SQL pour SQL Server 2014 (12.x) et versions antérieures, consultez Versions antérieures de la documentation.

Arguments

<algorithm>
Identifie l'algorithme de hachage à utiliser pour les données d'entrée. Cet argument est obligatoire, sans valeur par défaut. Les guillemets simples sont obligatoires. À partir de SQL Server 2016 (13.x), tous les algorithmes autres que SHA2_256 et SHA2_512 sont déconseillés.

@input
Variable contenant les données à hacher. @input est de type varchar, nvarchar ou varbinary.

'input'
Spécifie une expression qui correspond à une chaîne de type caractère ou binaire à hacher.

La sortie se conforme à l'algorithme standard : 128 bits (16 octets) pour MD2, MD4 et MD5 ; 160 bits (20 octets) pour SHA et SHA1 ; 256 bits (32 octets) pour SHA2_256 et 512 bits (64 octets) pour SHA2_512.

S’applique à : SQL Server 2012 (11.x) et ultérieur

Pour SQL Server 2014 (12.x) et versions antérieures, les valeurs d’entrée autorisées sont limitées à 8 000 octets.

Valeur de retour

varbinary (au maximum 8 000 octets)

Notes

Envisagez d’utiliser CHECKSUM ou BINARY_CHECKSUM comme alternatives pour calculer une valeur de hachage.

Les algorithmes de hachage MD2, MD4, MD5, SHA et SHA1 sont dépréciés à partir de SQL Server 2016 (13.x). Utilisez SHA2_256 ou SHA2_512 à la place. Des algorithmes plus anciens continueront de fonctionner, mais ils déclencheront un événement de dépréciation.

Exemples

Retourne le hachage d'une variable

L’exemple suivant renvoie le hachage SHA2_256 des données nvarchar stockées dans la variable @HashThis.

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

Retourne le hachage d'une colonne de table

L'exemple suivant retourne le code de hachage SHA2_256 des valeurs de la colonne c1 dans la table 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;  

Voici le jeu de résultats obtenu.

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

Voir aussi

Choisir un algorithme de chiffrementCHECKSUM_AGG (Transact-SQL)CHECKSUM (Transact-SQL)BINARY_CHECKSUM (Transact-SQL)