Вопрос

В соответствии с документ MySQL

«Используется кодировка с длиной ключа 128 бит, но вы можете расширить ее до 256 бит, изменив источник».

Но они, похоже, не дали инструкций, где измениться.Кто-нибудь сталкивался с этой ситуацией?какой исходный файл следует изменить?

Примечание:я использую эти шаги для компиляции.

Это было полезно?

Решение

Я нашел небольшую помощь из списка рассылки

файл include / my_aes.h

#define AES_KEY_LENGTH 128 /* must be 128 192 or 256 */

поскольку я использую OpenSuSe 11.1, мне нужны следующие инструменты

sudo zypper install gcc gcc-c++ ncurses-devel

затем просто скомпилируйте его по этой инструкции - здесь

Кредит для LenZ и tripanel.net

Другие советы

Вероятно, это будет более удобное в обслуживании решение для выполнения шифрования в клиентском приложении.

Более того, вы также получите преимущество в том, что данные будут передаваться по сети зашифрованными, а не отправлять ключ по сети (конечно, вы в любом случае можете использовать SSL для подключения к MySQL, чтобы смягчить это).

Если это не кажется хорошим подходом, опубликуйте свои требования.

Вероятно, вы не захотите компилировать свои собственные двоичные файлы MySQL;есть более полезные вещи для разработчиков, чем создание собственных двоичных файлов MySQL.MySQL/Sun тщательно протестированы и не будут содержать снижения производительности (мы надеемся).


Функции mysql AES_ENCRYPT() также потенциально небезопасны, поскольку они не документированы.

  • Как они хешируют пароль в ключ
  • Какой режим шифрования они используют

Если они выполнены уязвимым способом, шифрование может быть очень слабым.Имеет ли это значение, зависит от вашего варианта использования.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top