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.
- 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
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 :
| 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.
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)