HASH()
DSQL, PSQL
HASH (str [USING <algorithm>]) <algorithm> ::= { CRC32 }
Paramètre | Description |
---|---|
str |
Une expression de type chaîne de caractères. |
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.
- 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’algorithmeCRC32
, Firebird applique l’algorithme CRC32 en utilisant le polynôme 0x04C11DB7.Pour cet algorithme, la fonction
HASH
renvoie un résultat de typeINTEGER
.