Compartilhar via


HASHBYTES (Transact-SQL)

Retorna o hash de MD2, MD4, MD5, SHA, SHA1 ou SHA2 de sua entrada no SQL Server.

Aplica-se a: SQL Server (do SQL Server 2008 à versão atual).

Ícone de vínculo de tópico Convenções da sintaxe Transact-SQL

Sintaxe

HASHBYTES ( '<algorithm>', { @input | 'input' } ) 

<algorithm>::= MD2 | MD4 | MD5 | SHA | SHA1 | SHA2_256 | SHA2_512 

Argumentos

  • '<algoritmo>'
    Identifica o algoritmo de hash a ser usado para aplicar o hash à entrada. Este é um argumento exigido sem padrão. As aspas simples são obrigatórias.

  • @input
    Especifica uma variável que contém os dados a aceitar o hash. @input é varchar, nvarchar ou varbinary.

  • ' input '
    Especifica uma expressão que é avaliada para uma cadeia de caracteres binária ou um caractere que receberá hash.

    Os valores de entrada permitidos estão limitados a 8000 bytes. A saída segue o padrão do algoritmo: 128 bits (16 bytes) para MD2, MD4 e MD5; 160 bits (20 bytes) para SHA e SHA1; 256 bits (32 bytes) para SHA2_256 e 512 bits (64 bytes) para SHA2_512.

    256 bits (32 bytes) para SHA2_256 e 512 bits (64 bytes) para SHA2_512 se aplicam ao SQL Server 2012 até o SQL Server 2014.

Valor de retorno

varbinary (máximo de 8000 bytes)

Exemplos

Retornar o hash de uma variável

O exemplo a seguir retorna o hash SHA1 dos dados nvarchar armazenados na variável @HashThis.

DECLARE @HashThis nvarchar(4000);
SET @HashThis = CONVERT(nvarchar(4000),'dslfdkjLK85kldhnv$n000#knf');
SELECT HASHBYTES('SHA1', @HashThis);

Retornar o hash de uma coluna de tabela

O exemplo a seguir retorna o hash SHA1 dos valores na coluna c1 da tabela 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;

Aqui está o conjunto de resultados.

-------------------------------------------
0x0E7AAB0B4FF0FD2DFB4F0233E2EE7A26CD08F173
0xF643A82F948DEFB922B12E50B950CEE130A934D6

(2 row(s) affected)

Consulte também

Conceitos

Escolher um algoritmo de criptografia