Spec-Zone.ru › MariaDB

AES_ENCRYPT

Синтаксис

AES_ENCRYPT(str,key_str)

От MariaDB 11.2.0

AES_ENCRYPT(str, key, [, iv [, mode]])

Описание

AES_ENCRYPT() и AES_DECRYPT() позволяют шифровать и расшифровывать данные с использованием официального алгоритма AES (Advanced Encryption Standard), ранее известного как «Rijndael». Используется кодирование с длиной ключа 128 бит (с MariaDB 11.2.0, это значение по умолчанию и может быть изменено). 128 бит значительно быстрее и достаточно безопасно для большинства задач.

AES_ENCRYPT() шифрует строку str с использованием ключа key_str и возвращает двоичную строку.

AES_DECRYPT() расшифровывает зашифрованную строку и возвращает исходную строку.

Входные аргументы могут иметь любую длину. Если любой из аргументов равен NULL, результат этой функции также NULL.

Поскольку AES — это алгоритм на уровне блоков, для кодирования строк с неравномерной длиной используется заполнение, и поэтому длина результирующей строки может быть вычислена с помощью этой формулы:

16 x (trunc(string_length / 16) + 1)

Если AES_DECRYPT() обнаруживает некорректные данные или неправильное заполнение, он возвращает NULL. Однако AES_DECRYPT() может вернуть значение, отличное от NULL (возможно, мусор), если входные данные или ключ некорректны.

MariaDB начиная с 11.2

Начиная с MariaDB 11.2, функция поддерживает вектор инициализации и управление режимом шифрования блоков. Режим по умолчанию определяется системной переменной block_encryption_mode, которая может быть изменена при вызове функции с режимом. mode — это aes-{128,192,256}-{ecb,cbc,ctr}, например: "AES-128-cbc".

AES_ENCRYPT(str, key) больше не может использоваться в постоянных виртуальных столбцах (и т.п.).

Примеры

INSERT INTO t VALUES (AES_ENCRYPT('text',SHA2('password',512)));

От MariaDB 11.2.0:

SELECT HEX(AES_ENCRYPT('foo', 'bar', '0123456789abcdef', 'aes-256-cbc')) AS x;
+----------------------------------+
| x                                |
+----------------------------------+
| 42A3EB91E6DFC40A900D278F99E0726E |
+----------------------------------+
Содержимое, воспроизведенное на этом сайте, является собственностью соответствующих владельцев, и это содержимое не проходит предварительной проверки MariaDB. Мнения, информация и мнения, выраженные в этом содержании, не обязательно отражают взгляды MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/aes_encrypt/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API