Возможно, это будет более удобное решение для выполнения шифрования в клиентском приложении.
Кроме того, вы также получите выгоду от того, что данные передаются по сети зашифрованными и не отправляют ключ по сети (конечно, вы можете использовать SSL для подключения к mysql для смягчения этого в любом случае).
Если это не похоже на хороший подход, пожалуйста, напишите ваши требования.
Возможно, вы не хотите скомпилировать свои собственные бинарные файлы mysql; для разработчиков есть более полезные вещи, чем создание собственных бинарных файлов mysql. MySQL/Sun тщательно протестированы и не будут содержать регрессии производительности (мы надеемся).
для MySQL AES_ENCRYPT() функции также потенциально не безопасен, потому что они не документированы
- Как они хэш пароля в ключевой
- Что шифра режим они используют
Если они сделаны уязвимым способом, шифрование может быть очень слабым. Это зависит от вашего случая использования, имеет ли это значение.
Самая большая проблема с функцией - это не длина ключа, а режим. Он использует ECB, поэтому нет цепочки блоков и нет начального вектора. Он не подходит для шифрования конфиденциальных данных. Например, один и тот же пароль всегда будет генерировать один и тот же шифротекст, поэтому очень легко угадать общие используемые пароли. –
Вы правы. Это очень первичное состояние для защиты данных приложения. CBC - это следующий шаг, который шифрует/дешифрует на уровне доступа к данным. – Jirapong