Partilhar via


HASHBYTES (Transact-SQL)

Aplica-se a:SQL ServerBase de Dados SQL do AzureInstância Gerida do Azure SQLAzure Synapse AnalyticsSistema de Plataforma de Análise (PDW)Ponto de Extremidade de Análise SQL no Microsoft FabricArmazém no Microsoft FabricBase de Dados SQL no Microsoft Fabric

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

Transact-SQL convenções de sintaxe

Sintaxe

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

Arguments

<algorithm>
Identifica o algoritmo de hash a ser usado para fazer o hash da entrada. Este é um argumento obrigatório, sem incumprimento. As aspas simples são obrigatórias. A partir do SQL Server 2016 (13.x), todos os algoritmos exceto SHA2_256 e SHA2_512 ficam obsoletos.

@input
Especifica uma variável contendo os dados a ser hashados. @input é varchar, nvarchar ou varbinary.

'entrada'
Especifica uma expressão que avalia para um carácter ou cadeia binária a ser hashada.

A saída cumpre 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 versões posteriores

No SQL Server 2014 (12.x) e anteriores, os valores de entrada permitidos estão limitados a 8000 bytes.

Valor de retorno

varbinary (máximo 8000 bytes)

Observações

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

Os algoritmos MD2, MD4, MD5, SHA e SHA1 estão obsoletos a partir do SQL Server 2016 (13.x). Em vez disso, use SHA2_256 ou SHA2_512. Algoritmos mais antigos continuam a funcionar, mas geram um evento de depreciação.

Examples

Devolver o hash de uma variável

O exemplo seguinte devolve o SHA2_256 hash 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);  

Devolver o hash de uma coluna de tabela

O exemplo seguinte devolve o SHA2_256 hash 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;  

Aqui está o conjunto de resultados.

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

Ver também

Escolha um Algoritmo de EncriptaçãoCHECKSUM_AGG (Transact-SQL)CHECKSUM (Transact-SQL)BINARY_CHECKSUM (Transact-SQL)