Я пытался расшифровать значения из базы данных, которые были зашифрованы с помощью VB6 с использованием AES256 Rijndael — алгоритм vb6 был написанный Филом Фреслом.
Проблема в том, что некоторые вещи изменились с vb6 и php. В vb6 я просто использовал функцию, передавая значение, которое я хотел зашифровать, и ключ для него. Кроме того, ключ был не таким длинным, поскольку сам алгоритм дополнял его нулями. В PHP я теперь не знаю, как расшифровать значения, которые были зашифрованы с помощью реализации vb6 aes Фила Фресле. Я попробовал следующее безуспешно:
function decodeAES256($password)
{
// $password here: 20D2E48C0A262B95852ABF5269488736504F728DF50A4D4BF72A5DFB8FB09925
return mcrypt_decrypt(MCRYPT_RIJNDAEL_128, 'ThisIsSomeSecretKeySecretKey\0\0\0\0', password, MCRYPT_MODE_ECB);
}
Пароли были зашифрованы в vb6 с помощью ключа «ThisIsSomeSecretKeySecretKey \ 0 \ 0 \ 0 \ 0» — выполнение приведенного выше кода не расшифрует правильный пароль ..?
Может быть, я немного уточню вопрос:
В настоящее время ключ, который использовался в VB6 Encryption, имеет 28 символов (я не могу опубликовать настоящий ключ здесь, но ключ имеет ту же длину, что и «ThisIsSomeSecretKeySecretKey»), поэтому для обеспечения работы ключа и для включения AES256 в Rijaendel128, Я расширяю его, объединяя 4x «/ 0» -> «ThisIsSomeSecretKeySecretKey \ 0 \ 0 \ 0 \ 0» до 32 символов / бит.
Функция VB6 получает в качестве входного параметра только ключ и зашифрованное значение для расшифровки. Нет $ iv используется. Так что мне здесь тоже не нужно?
Когда я пытаюсь расшифровать строку, я получаю очень странные письма с кодом aboce: «ãW┤ä▬ → ☻ûI¤ =¦.ÌËS» является результатом «дешифрования» зашифрованного значения.
Нужно ли настраивать другие параметры или алгоритм VB6 использует другие значения по умолчанию или кодировку?
Можно ли вызвать метод vb6 с помощью COM-класса при включении vb6 rijndael в качестве DLL? Если это будет работать в теории, где я могу найти класс vb6 как DLL?
Задача ещё не решена.
Других решений пока нет …