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');
См. также
© 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/