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)
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de