Spec-Zone.ru › MariaDB

DES_ENCRYPT

Функция DES_ENCRYPT устарела, начиная с MariaDB 10.10.0, и будет удалена в будущих версиях.

Синтаксис

DES_ENCRYPT(str[,{key_num|key_str}])

Описание

Шифрует строку с заданным ключом с использованием алгоритма Triple-DES.

Эта функция работает только в том случае, если MariaDB настроена с поддержкой TLS.

Ключ шифрования выбирается на основе второго аргумента DES_ENCRYPT(), если он был указан. Без аргумента используется первый ключ из файла ключей DES. С аргументом key_num используется заданный номер ключа (0-9) из файла ключей DES. С аргументом key_str используется заданная строка ключа для шифрования str.

Файл ключей может быть указан с помощью параметра сервера --des-key-file.

Возвращаемая строка — это двоичная строка, где первый символ — CHAR(128 | key_num). В случае ошибки функция DES_ENCRYPT() возвращает NULL.

Число 128 добавлено для лучшего распознавания зашифрованного ключа. Если используется строковый ключ, key_num равно 127.

Длина строки результата определяется по формуле:

new_len = orig_len + (8 - (orig_len % 8)) + 1

Каждая строка в файле ключей DES имеет следующий формат:

key_num des_key_str

Каждое значение key_num должно быть числом в диапазоне от 0 до 9. Строки в файле могут быть в любом порядке. des_key_str — это строка, используемая для шифрования сообщения. Между числом и ключом должно быть как минимум одно пробельное пространство. Первый ключ — это ключевой ключ по умолчанию, который используется, если вы не указываете аргумент ключа для DES_ENCRYPT().

Вы можете заставить MariaDB читать новые значения ключей из файла ключей с помощью инструкции FLUSH DES_KEY_FILE. Это требует привилегии RELOAD.

Одно из преимуществ набора ключевых значений по умолчанию — возможность для приложений проверять наличие зашифрованных значений столбцов без предоставления конечному пользователю права их расшифровки.

Примеры

SELECT customer_address FROM customer_table 
   WHERE crypted_credit_card = DES_ENCRYPT('credit_card_number');

См. также

  • DES_DECRYPT()
Содержимое, воспроизведенное на этом сайте, является собственностью соответствующих владельцев, и это содержимое не проверяется предварительно 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/des_encrypt/

Spec-Zone.ru

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