16, 24 и 32 байта для режимов -128-, -196- и -256- соответственно.
Длина вектора инициализации всегда составляет 16 байт (байты сверх этого значения игнорируются).
HMAC
- 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.Stringmessage— Сообщение, подлежащее аутентификации.Stringkey— Секретный ключ для HMAC.String
String
Примеры
Базовый HMAC-SHA256
Query
Response
Query
Response
Query
Response
aes_decrypt_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— Режим расшифровки.Stringciphertext— Шифртекст, который нужно расшифровать.Stringkey— Ключ для расшифровки.Stringiv— Необязательно. Вектор инициализации.String
String
Примеры
Расшифровка данных MySQL
Query
Response
aes_encrypt_mysql
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— Режим шифрования.Stringplaintext— Открытый текст, который нужно зашифровать.Stringkey— Ключ шифрования. Если ключ длиннее, чем требуется дляmode, выполняется специфическое для MySQL свёртывание ключа.Stringiv— Необязательно. Вектор инициализации. Учитываются только первые 16 байт.String
String
Примеры
Сравнение при одинаковых входных данных
Query
Response
Query
Response
Query
Response
Query
Response
decrypt
- 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— Режим расшифровки.Stringciphertext— Шифротекст, который требуется расшифровать.Stringkey— Ключ для расшифровки.Stringiv— Вектор инициализации. Обязателен для режимов-gcm, в остальных случаях — необязателен.Stringaad— Дополнительные аутентифицированные данные. Если это значение неверно, расшифровка не выполнится. Работает только в режимах-gcm; в остальных случаях генерирует исключение.String
String
Примеры
Корректная расшифровка зашифрованных данных
Query
Response
Query
Response
encrypt
- 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— Режим шифрования.Stringplaintext— Открытый текст, который нужно зашифровать.Stringkey— Ключ шифрования.Stringiv— Вектор инициализации. Обязателен для режимов-gcm, для остальных — необязателен.Stringaad— Дополнительные аутентифицированные данные. Эти данные не шифруются, но влияют на расшифровку. Работает только в режимах-gcm, в остальных режимах генерируется исключение.String
String
Примеры
Пример шифрования
Query
Response
Query
Response
tryDecrypt
decrypt, но возвращает NULL, если при использовании неверного ключа расшифровать данные не удаётся.
Синтаксис
mode— Режим расшифровки.Stringciphertext— Шифротекст, который нужно расшифровать.Stringkey— Ключ расшифровки.Stringiv— Необязательно. Вектор инициализации. Обязателен для режимов-gcm, для остальных режимов необязателен.Stringaad— Необязательно. Дополнительные аутентифицированные данные. Если это значение неверно, расшифровка не выполнится. Работает только в режимах-gcm; для остальных режимов генерирует исключение.String
NULL, если расшифровка не удалась. Nullable(String)
Примеры
Создание таблицы и вставка данных
Query
Response