с Firebird 4.0 ваша версия: любая

CRYPT_HASH

Версии сервера

2.53.04.05.06.0
−−ДаДаДа

Доступно в

DSQL, PSQL

Формат

CRYPT_HASH(value USING <algorithm>)

<algorithm> ::= { MD5 | SHA1 | SHA256 | SHA512
               | SHA3_224 | SHA3_256 | SHA3_384 | SHA3_512 }

Описание

Функция CRYPT_HASH вычисляет криптографический хеш от входного значения и возвращает результат типа VARBINARY. Алгоритм задаётся предложением USING: MD5, SHA1, SHA256, SHA512, SHA3_224, SHA3_256, SHA3_384, SHA3_512.

Параметр value — выражение любого типа: не строковые и не бинарные типы перед хешированием автоматически приводятся к строке. Текстовые BLOB поддерживаются полностью — любой длины и набора символов, так что функцию можно применять к документам и другим крупным текстовым значениям без ограничений.

Учтите: алгоритмы MD5 и SHA1 не рекомендуются — для них известны серьёзные проблемы стойкости. Они сохранены в функции только ради обратной совместимости со старым кодом. Для новых разработок выбирайте SHA256, SHA512 или семейство SHA3.

Типичные применения: контроль целостности данных, сравнение содержимого полей без передачи самого содержимого, детерминированные ключи дедупликации.

Пример

-- Хеш значения поля по SHA256, результат типа VARBINARY
SELECT CRYPT_HASH(x USING SHA256)
FROM MyTable;

-- Проверка целостности документа: текущий хеш BLOB против сохранённого
SELECT id
FROM documents
WHERE CRYPT_HASH(body USING SHA512) <> saved_hash;

См. также

BASE64_ENCODE, ENCRYPT, Встроенные функции по группам

Источник

Руководство по языку SQL СУБД Firebird 5.0 (sim1984 / ibase.ru, Public Documentation License)

Обсуждение