FirebirdSQL logo

HASH()

Disponible en

DSQL, PSQL

Syntaxe
HASH (str [USING <algorithm>])

<algorithm> ::= { CRC32 }
Table 1. paramètres de fonction HASH
Paramètre Description

str

Une expression de type chaîne de caractères.

Le type de résultat renvoyé :

BIGINT

La fonction HASH renvoie un hachage non cryptographique de la chaîne d’entrée.Cette fonction prend entièrement en charge les `BLOB' de texte de n’importe quelle longueur et avec n’importe quel jeu de caractères.

La clause facultative USING spécifie l’algorithme de hachage non cryptographique à appliquer.Lorsque la clause USING n’est pas présente, l’algorithme PJW est appliqué, comme dans les versions précédentes de Firebird.

Algorithmes pris en charge :
non spécifié

Si aucun algorithme n’est spécifié, une version 64 bits de l’algorithme non cryptographique est utilisée.https://en.wikipedia.org/wiki/PJW_hash_function [fonction de hachage PJW^] (également connue sous le nom de ELF64) est utilisée.Cette fonction est très rapide et peut être utilisée à des fins générales (tables de hachage, etc.) mais présente un grand nombre de collisions.Pour un hachage plus sûr, vous devriez utiliser d’autres fonctions de hachage, explicitement spécifiées dans la clause USING, ou des hachages cryptographiques avec [fblangref-scalarfuncs-crypthash].

Pour cet algorithme de hachage, la fonction renvoie le type BIGINT.

CRC32

Si la clause USING spécifie l’algorithme CRC32, Firebird applique l’algorithme CRC32 en utilisant le polynôme 0x04C11DB7.

Pour cet algorithme, la fonction HASH renvoie un résultat de type INTEGER.

Exemple HASH

Example 1. Calcul du hachage avec algorithme PJW
SELECT HASH(x) FROM MyTable;
-- résultat du type BIGINT
Example 2. Calcul du hachage avec algorithme CRC32
SELECT HASH(x USING CRC32) FROM MyTable;
-- résultat du type INTEGER