fonction hash()

La fonction " hash() renvoie un hachage de 128, 160 ou 256 bits des données d'entrée, en fonction de l'algorithme sélectionné.

Cette fonction fournit2128-2256 valeurs de retour distinctes et est destinée à des fins cryptographiques. La fonction ne produit presque jamais la même sortie pour deux entrées différentes.

Avant d'utiliser la fonction 'hash(), il convient d'être attentif aux comportements suivants :
  • La fonction " hash() est généralement beaucoup plus lente que les fonctions " hash4() ou " hash8() pour effectuer des calculs. En outre, la fonction " hash() renvoie une valeur binaire varchar de 16 à 32 octets ; la comparaison de valeurs binaires varchar prend plus de temps que la comparaison de valeurs entières et augmente donc la durée d'exécution des requêtes. Si vous avez besoin de rapidité dans la génération et la comparaison de hachages ou si vous n'avez besoin que d'une simple fonction de recherche à sens unique, utilisez la fonction " hash4() ou " hash8() au lieu de la fonction " hash().
  • Les colonnes avec des valeurs de hachage de la fonction 'hash() ne peuvent pas être mappées par zone et n'utilisent pas d'autres techniques de performance de requête de Netezza Performance Server

Syntaxe

La fonction " hash() a la syntaxe suivante :
varchar = hash(varchar data [, int algorithm]);
nvarchar = hash(nvarchar data [, int algorithm]);

La valeur " data spécifie la valeur varchar ou nvarchar à hacher.

La valeur " algorithm est un code entier, dont la valeur par défaut est 0. Les algorithmes disponibles et la taille des valeurs de hachage obtenues sont indiqués dans le tableau suivant :

Tableau 1. Algorithmes pris en charge pour le hachage cryptographique
Coder Descriptif Résultat
0 MD5 hachage de 128 bits
1 SHA-1 hachage de 160 bits
2 SHA-2 hachage 256 bits

L'algorithme MD5 et l'algorithme de hachage sécurisé (SHA) sont des algorithmes de résumé de message dérivés de l'algorithme MD4. Les fonctions de hachage SHA sont le résultat d'un effort de la National Security Agency (NSA) visant à fournir de solides capacités de hachage cryptographique.

Important : pour traiter des valeurs nvarchar, vous devez utiliser la fonction " hash_nvarchar() au lieu de la fonction " hash() La fonction " hash_nvarchar() renvoie une valeur varchar pour des données nvarchar. La fonction " hash() est conservée pour des raisons de compatibilité avec les versions et les résultats antérieurs, mais les tables et les vues qui stockent les valeurs de la fonction " hash('NVARCHAR') peuvent rencontrer des problèmes lors des chargements et des opérations de génération de statistiques.

Retours

La fonction renvoie des données hachées. Le type de retour est une valeur varchar binaire de 16 à 32 octets.

Exemple

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