Перейти к основному содержанию
Эти функции реализуют шифрование и дешифрование данных с помощью алгоритма AES (Advanced Encryption Standard). Длина ключа зависит от режима шифрования: 16, 24 и 32 байта для режимов -128-, -196- и -256- соответственно. Длина вектора инициализации всегда составляет 16 байт (байты сверх этого значения игнорируются).

HMAC

Добавленный в: v25.12.0 Вычисляет HMAC (Hash-based Message Authentication Code) для указанного сообщения с использованием заданного алгоритма хеширования и секретного ключа. Поддерживаемые алгоритмы хеширования:
  • blake2b512
  • blake2s256
  • md4
  • md5
  • md5-sha1
  • mdc2
  • ripemd (псевдонимы: RIPEMD160, ripemd)
  • ripemd160
  • rmd160 (псевдонимы: RIPEMD160, rmd160)
  • sha1
  • sha224
  • sha256
  • sha3-224
  • sha3-256
  • sha3-384
  • sha3-512
  • sha384
  • sha512
  • sha512-224
  • sha512-256
  • shake128
  • shake256
  • sm3
  • ssl3-md5 (псевдонимы: MD5, ssl3-md5)
  • ssl3-sha1 (псевдонимы: SHA1, ssl3-sha1)
  • whirlpool
Синтаксис
Аргументы
  • mode — Имя алгоритма хеширования (регистронезависимо). Поддерживаются: md5, sha1, sha224, sha256, sha384, sha512. String
  • message — Сообщение, подлежащее аутентификации. String
  • key — Секретный ключ для HMAC. String
Возвращаемое значение Возвращает двоичную строку с дайджестом HMAC. String Примеры Базовый HMAC-SHA256
Query
Response
Различные хеш-алгоритмы
Query
Response
Регистронезависимый режим
Query
Response

aes_decrypt_mysql

Добавленный в: v20.12.0 Расшифровывает данные, зашифрованные функцией MySQL AES_ENCRYPT. Возвращает тот же открытый текст, что и decrypt, для тех же входных данных. Если key или iv длиннее, чем требуется, aes_decrypt_mysql будет вести себя так же, как MySQL aes_decrypt: выполнять свёртку key и игнорировать лишние биты IV. Поддерживает следующие режимы расшифровки:
  • aes-128-ecb, aes-192-ecb, aes-256-ecb
  • aes-128-cbc, aes-192-cbc, aes-256-cbc
  • aes-128-cfb128
  • aes-128-ofb, aes-192-ofb, aes-256-ofb
Синтаксис
Аргументы
  • mode — Режим расшифровки. String
  • ciphertext — Шифртекст, который нужно расшифровать. String
  • key — Ключ для расшифровки. String
  • iv — Необязательно. Вектор инициализации. String
Возвращаемое значение Возвращает расшифрованную строку. String Примеры Расшифровка данных MySQL
Query
Response

aes_encrypt_mysql

Добавленный в: v20.12.0 Шифрует текст так же, как функция AES_ENCRYPT в MySQL. Полученный шифротекст можно расшифровать с помощью функции AES_DECRYPT в MySQL. Для одинаковых входных данных возвращает тот же шифротекст, что и функция encrypt. Если key или iv длиннее, чем требуется, aes_encrypt_mysql будет следовать поведению aes_encrypt в MySQL: key будет «сворачиваться», а лишние биты iv — игнорироваться. Поддерживаются следующие режимы шифрования:
  • aes-128-ecb, aes-192-ecb, aes-256-ecb
  • aes-128-cbc, aes-192-cbc, aes-256-cbc
  • aes-128-ofb, aes-192-ofb, aes-256-ofb
Синтаксис
Аргументы
  • mode — Режим шифрования. String
  • plaintext — Открытый текст, который нужно зашифровать. String
  • key — Ключ шифрования. Если ключ длиннее, чем требуется для mode, выполняется специфическое для MySQL свёртывание ключа. String
  • iv — Необязательно. Вектор инициализации. Учитываются только первые 16 байт. String
Возвращаемое значение Шифротекст в виде двоичной строки. String Примеры Сравнение при одинаковых входных данных
Query
Response
Не удаётся зашифровать при длинном ключе
Query
Response
Совместимость с MySQL
Query
Response
Более длинный IV даёт тот же результат
Query
Response

decrypt

Добавленный в: v20.12.0 Эта функция расшифровывает двоичную строку, зашифрованную алгоритмом AES, в следующих режимах:
  • aes-128-ecb, aes-192-ecb, aes-256-ecb
  • aes-128-cbc, aes-192-cbc, aes-256-cbc
  • aes-128-ofb, aes-192-ofb, aes-256-ofb
  • aes-128-gcm, aes-192-gcm, aes-256-gcm
  • aes-128-ctr, aes-192-ctr, aes-256-ctr
  • aes-128-cfb, aes-128-cfb1, aes-128-cfb8
Синтаксис
Аргументы
  • mode — Режим расшифровки. String
  • ciphertext — Шифротекст, который требуется расшифровать. String
  • key — Ключ для расшифровки. String
  • iv — Вектор инициализации. Обязателен для режимов -gcm, в остальных случаях — необязателен. String
  • aad — Дополнительные аутентифицированные данные. Если это значение неверно, расшифровка не выполнится. Работает только в режимах -gcm; в остальных случаях генерирует исключение. String
Возвращаемое значение Возвращает расшифрованный открытый текст. String Примеры Корректная расшифровка зашифрованных данных
Query
Response
Неправильная расшифровка зашифрованных данных
Query
Response

encrypt

Добавленный в: v20.12.0 Шифрует открытый текст в шифротекст с помощью AES в одном из следующих режимов:
  • aes-128-ecb, aes-192-ecb, aes-256-ecb
  • aes-128-cbc, aes-192-cbc, aes-256-cbc
  • aes-128-ofb, aes-192-ofb, aes-256-ofb
  • aes-128-gcm, aes-192-gcm, aes-256-gcm
  • aes-128-ctr, aes-192-ctr, aes-256-ctr
  • aes-128-cfb, aes-128-cfb1, aes-128-cfb8
Синтаксис
Аргументы
  • mode — Режим шифрования. String
  • plaintext — Открытый текст, который нужно зашифровать. String
  • key — Ключ шифрования. String
  • iv — Вектор инициализации. Обязателен для режимов -gcm, для остальных — необязателен. String
  • aad — Дополнительные аутентифицированные данные. Эти данные не шифруются, но влияют на расшифровку. Работает только в режимах -gcm, в остальных режимах генерируется исключение. String
Возвращаемое значение Возвращает шифртекст в виде двоичной строки. String Примеры Пример шифрования
Query
Response
Пример с режимом GCM
Query
Response

tryDecrypt

Добавленный в: v22.10.0 Аналогично функции decrypt, но возвращает NULL, если при использовании неверного ключа расшифровать данные не удаётся. Синтаксис
Аргументы
  • mode — Режим расшифровки. String
  • ciphertext — Шифротекст, который нужно расшифровать. String
  • key — Ключ расшифровки. String
  • iv — Необязательно. Вектор инициализации. Обязателен для режимов -gcm, для остальных режимов необязателен. String
  • aad — Необязательно. Дополнительные аутентифицированные данные. Если это значение неверно, расшифровка не выполнится. Работает только в режимах -gcm; для остальных режимов генерирует исключение. String
Возвращаемое значение Возвращает расшифрованную строку или NULL, если расшифровка не удалась. Nullable(String) Примеры Создание таблицы и вставка данных
Query
Response
Последнее изменение 10 июня 2026 г.