HASH()
DSQL, PSQL
HASH (str [USING <algorithm>]) <algorithm> ::= { CRC32 }
Параметр | Описание |
---|---|
str |
Выражение строкового типа. |
BIGINT
Функция HASH
возвращает некриптографический хэш входной строки.Эта функция полностью поддерживает текстовые BLOB
любой длины и с любым набором символов.
Необязательное предложение USING
определяет применяемый некриптографический алгоритм хеширования.Когда предложение USING
отсутствует, применяется устаревший алгоритм PJW; это идентично его поведению в предыдущихверсиях Firebird.
- не указан
-
Если алгоритм не указан, то используется 64-битный вариант некриптографическойхэш-функции PJW (также известной как ELF64).Эта функция очень быстра и может использоваться для общих целей (хеш-таблицы и т.д.), но имеет большое количество коллизий.Для более надежного хеширования следует использовать другие хеш-функции, явно указанные в предложении USING, или криптографические хеши с помощью [fblangref-scalarfuncs-crypthash].
Для этого алгоритма хеширования функция возвращает тип
BIGINT
. CRC32
-
Если в предложении
USING
указан алгоритмCRC32
, то Firebird применяет алгоритм CRC32, используя полином 0x04C11DB7.Для этого алгоритма функция
HASH
возвращает результат с типомINTEGER
.