Меня попросили исследовать расшифровку по запросу из базы данных MySQL.Drupal 7 используется для веб-страниц, которые хранят и отображают данные веб-формы в базе данных MySQL v. 5.5.Mcrypt AES CBC Mode используется для шифрования выбранных столбцов таблицы.Мне дали закрытый ключ в открытом виде.База данных MySQL версии 8 была создана для хранения расшифрованных данных.Импорт данных из различных таблиц будет осуществляться из базы данных v.5.5 в базу данных v8 с последующим расшифровкой ряда столбцов в таблице webform_submitted_data.Предполагалось, что между закрытым ключом и MySQL v8, обладающим дополнительными возможностями block_encryption_mode, и вектором инициализации для AES_DECRYPT, расшифровка может выполняться с помощью запроса к базе данных.
Типичный зашифрованный столбец имеет такой тип содержимого:: 6: {s: 4: "текст"; s: 128: "AVcdpc + pHcU4 / LjBkG + LllYxGEVVdBRD0 + fThxkGD7q9zUFXx + H2lcYOWK05Y5483MOGaJuM6yMNIYjcCpyx6s0JyU7d2wJMWH + jLvOSoezaVPNmGKB9 / cykAnCBTiC5"; s: 6: "метод"; s: 14: "mcrypt_aes_cbc";с: 12: "key_provider"; s: 15: "drupal_variable"; s: 7: "варианты", а: 1: {s: 6: "base64"; б: 1;} s: 15: "method_settings";s: 0: ""; s: 17: "provider_settings"; a: 1: {s: 6: "method"; s: 17: "variable_contents";}}
Многие варианты следующего видаподхода были использованы, но с успехом:
SET block_encryption_mode = 'aes-256-cbc';
SET @key_str = SHA2('My private key',512);
SET @init_vector = RANDOM_BYTES(16);
SET @crypt_str = AES_ENCRYPT('text',@key_str,@init_vector);
SELECT AES_DECRYPT(@crypt_str,@key_str,@init_vector);
Учитывая обстоятельства, возможно ли расшифровать данные с помощью запроса MySQL?Есть ли какая-то недостающая часть, которая заставила бы ее работать?