HASHBYTES (Transact-SQL)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsPDW (Analytics Platform System)Ponto de extremidade de SQL no Microsoft FabricWarehouse no Microsoft Fabric

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

Convenções de sintaxe de Transact-SQL

Sintaxe

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

Observação

Para exibir a sintaxe do Transact-SQL para o SQL Server 2014 (12.x) e versões anteriores, confira a Documentação das versões anteriores.

Argumentos

<algorithm>
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. Começando pelo SQL Server 2016 (13.x), todos os algoritmos, exceto SHA2_256 e SHA2_512, foram preteridos.

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

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.

Aplica-se a: SQL Server 2012 (11.x) e posterior

Para o SQL Server 2014 (12.x) e anterior, os valores de entrada permitidos estão limitados a 8.000 bytes.

Valor retornado

varbinary (máximo de 8.000 bytes)

Comentários

Considere o uso de CHECKSUM ou BINARY_CHECKSUM como alternativas para calcular um valor de hash.

Os algoritmos MD2, MD4, MD5, SHA e SHA1 começando com SQL Server 2016 (13.x) são preteridos. Use SHA2_256 ou SHA2_512. Os algoritmos mais antigos continuarão funcionando, mas acionarão um evento de reprovação.

Exemplos

Retornar o hash de uma variável

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

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

Retornar o hash de uma coluna de tabela

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

Este é o conjunto de resultados.

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

Consulte Também

Escolha um Algoritmo de CriptografiaCHECKSUM_AGG (Transact-SQL)CHECKSUM (Transact-SQL)BINARY_CHECKSUM (Transact-SQL)