HASH()
DSQL, PSQL
INTEGER
,BIGINT
HASH (value [USING <hash>]) <hash> ::= CRC32
Parameter | Beschreibung |
---|---|
value |
Ausdruck von Werten jeglicher Art;Nicht-String- oder Nicht-Binär-Typen werden in Strings konvertiert |
hash |
Anzuwendender nicht-kryptografischer Hash-Algorithmus |
HASH
gibt einen Hash-Wert für das Eingabeargument zurück.Wenn das Eingabeargument kein String- oder Binärtyp ist, wird es vor dem Hashing in einen String konvertiert.
Die optionale USING
-Klausel gibt den anzuwendenden nicht-kryptografischen Hash-Algorithmus an.Wenn die USING
-Klausel fehlt, wird der Legacy-PJW-Algorithmus angewendet;dies ist identisch mit dem Verhalten in früheren Firebird-Versionen.
Diese Funktion unterstützt vollständig Text-BLOB
s jeder Länge und jedes beliebigen Zeichensatzes.
- not specified
-
Wenn kein Algorithmus angegeben ist, wendet Firebird die 64-Bit-Variante der nicht-kryptografischen PJW-Hash-Funktion (auch bekannt als ELF64) an.Dies ist ein sehr schneller Algorithmus für allgemeine Zwecke (Hash-Tabellen usw.), aber seine Kollisionsqualität ist nicht optimal.Andere Hashfunktionen – die explizit in der
USING
-Klausel angegeben sind, oder kryptografische Hashes durch [fblangref40-scalarfuncs-crypthash-de] – sollten für zuverlässigeres Hashing verwendet werden.Die Funktion
HASH
gibtBIGINT
für diesen Algorithmus zurück CRC32
-
Mit
CRC32
wendet Firebird den CRC32-Algorithmus unter Verwendung des Polynoms 0x04C11DB7 an.Die Funktion
HASH
gibtINTEGER
für diesen Algorithmus zurück.