Condividi tramite


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).

Icona di collegamento a un argomento 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)

Vedere anche

Concetti

Scelta di un algoritmo di crittografia