função hash()

A função hash() retorna um hash de 128 bits, 160 bits ou 256 bits dos dados de entrada, dependendo do algoritmo que você selecionar.

Essa função fornece valores de retorno distintos 2128- 2256 e é destinada a propósitos criptográficos. A função quase nunca produz a mesma saída para duas entradas diferentes.

Antes de usar a função hash(), esteja ciente dos comportamentos a seguir:
  • A função hash() é geralmente muito mais lenta do que a função hash4() ou hash8() na execução de cálculos. Além disso, a função hash() retorna um valor varchar binário de 16 a 32 bytes; comparar valores varchar binários leva mais tempo do que comparar valores de números inteiros e, portanto, aumenta os tempos de execução de consulta. Se você precisar de velocidade na geração de hash e na comparação ou se tudo que você precisa for uma função de consulta unidirecional simples, use a função hash4() ou hash8() em vez da função hash().
  • As colunas com valores de hash da função ' hash() não podem ser mapeadas por zona e não usam outras técnicas de desempenho de consulta Netezza Performance Server.

Sintaxe

A função hash() tem a sintaxe a seguir:
varchar = hash(varchar data [, int algorithm]);
nvarchar = hash(nvarchar data [, int algorithm]);

O valor data especifica o valor varchar ou nvarchar para hash.

O valor ' algorithm é um código inteiro, cujo padrão é 0. Os algoritmos disponíveis e os tamanhos dos valores de hash resultantes são mostrados na tabela a seguir:

Tabela 1. Algoritmos suportados para hashing criptográfico
Código Descrição Resultado
0 MD5 Hash de 128 bits
1 SHA-1 Hash de 160 bits
2 SHA-2 Hash de 256 bits

O algoritmo MD5 e o Secure Hash Algorithm (SHA) são algoritmos de trecho da mensagem que são derivados de MD4. As funções hash de SHA são o resultado de um esforço da National Security Agency (NSA) em fornecer recursos de hashing criptográficos fortes.

Importante: para processar valores nvarchar, você deve usar a função ' hash_nvarchar() em vez da função ' hash(). A função hash_nvarchar() retorna um valor varchar para dados nvarchar de entrada. A função hash() permanece para compatibilidade com versões anteriores e resultados, mas tabelas e visualizações que armazenam valores da função hash('NVARCHAR') podem encontrar problemas durante carregamentos e operações GENERATE STATISTICS.

Retorna

A função retorna os dados submetidos a hash. O tipo de retorno é um valor varchar binário de 16 a 32 bytes.

Exemplo

select hash('Netezza',0);
       HASH
------------------
Ã
®dïO=±NEÂ
ÂÂÃ
(1 row)