HASHBYTES (Transact-SQL)
S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL analytics endpoint in Microsoft Fabric Warehouse in 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
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)