HASHBYTES (Transact-SQL)
Restituisce l'hash MD2, MD4, MD5, SHA1 o SHA2 del relativo input in SQL Server.
Si applica a: SQL Server (da SQL Server 2008 a versione corrente). |
Convenzioni della sintassi Transact-SQL
Sintassi
HASHBYTES ( '<algorithm>', { @input | 'input' } )
<algorithm>::= MD2 | MD4 | MD5 | SHA | SHA1 | SHA2_256 | SHA2_512
Argomenti
'<algorithm>'
Identifica l'algoritmo di hash da utilizzare per eseguire l'hashing dell'input. Si tratta di un argomento obbligatorio in assenza di impostazioni predefinite. Le virgolette singole sono obbligatorie.@input
Specifica una variabile contenente i dati di cui eseguire l'hashing. @input è di tipo varchar, nvarchar oppure varbinary.' input '
Specifica un'espressione che restituisce un carattere o una stringa binaria di cui eseguire l'hashing.La dimensione dei valori di input consentiti è limitata a 8.000 byte. L'output è conforme allo standard dell'algoritmo, ovvero 128 bit (16 byte) per MD2, MD4 e MD5 e 160 bit (20 byte) per SHA e SHA1; 256 bit (32 byte) per SHA2_256 e 512 bit (64 byte) per SHA2_512.
256 bit (32 byte) per SHA2_256 e 512 bit (64 byte) per SHA2_512 si applicano alle versioni da SQL Server 2012 a SQL Server 2014.
Valore restituito
varbinary (massimo 8000 byte)
Esempi
Restituire l'hash di una variabile
Nell'esempio seguente viene restituito l'hash SHA1 dei dati nvarchar archiviati nella variabile @HashThis.
DECLARE @HashThis nvarchar(4000);
SET @HashThis = CONVERT(nvarchar(4000),'dslfdkjLK85kldhnv$n000#knf');
SELECT HASHBYTES('SHA1', @HashThis);
Restituire l'hash di una colonna di tabella
Nell'esempio seguente viene restituito l'hash SHA1 dei valori della colonna c1 nella tabella Test1.
CREATE TABLE dbo.Test1 (c1 nvarchar(50));
GO
INSERT dbo.Test1 VALUES ('This is a test.'), ('This is test 2.');
GO
SELECT HASHBYTES('SHA1', c1) FROM dbo.Test1;
Set di risultati:
-------------------------------------------
0x0E7AAB0B4FF0FD2DFB4F0233E2EE7A26CD08F173
0xF643A82F948DEFB922B12E50B950CEE130A934D6
(2 row(s) affected)