Я только что понял, что нет лучшего способа скрыть пароль подключения к строке MySQL в моем исполняемом файле, особенно в файле JAR.Даже шифрование его в EXE только замедлит процесс (хотя я не уверен, сколько времени потребуется, чтобы получить зашифрованный пароль из файла EXE).
Итак, насколько я понимаю, мне нужно что-то посередине, что бы добавлять, редактировать, удалять и т.д. в базу данных.Похоже, работа для REST API или, возможно, сервисы SOAP.
Мой вопрос: какой мне использовать?Или я должен использовать что-то еще?Я думал о Zend Framework для создания этих REST API.Затем я бы использовал Qt для создания настольного приложения для вызова этих API.Но если я продолжу работу с REST, мое приложение будет трехуровневым.Разве не было бы лучше, если бы я просто создал веб-приложение?Может быть, я должен просто придерживаться настольных приложений, вызывать эти API, так как приложение уже завершено, и мне просто нужно перейти от прямого подключения к MySQL к вызову этих API для выполнения задач, а не превращать все приложение в сеть.
Любой совет будет очень полезным.Заранее спасибо.
ОБНОВЛЕНИЕ:
Я ищу защиту, которая защитила бы мое соединение с паролем MySQL.
Obfuscator будет только запутывать код, он не будет скрывать информацию о моей строковой базе данных, которую, на мой взгляд, можно легко найти с помощью grep после декомпиляции JAR с помощью таких инструментов, как JAD.
О моем приложении:
- Использование централизованной базы данных MySQL
- Тысячи пользователей
- Содержит конфиденциальную информацию
- Мой клиент использует Linux и Windows
- Мой сервер использует Linux
- Весь доступ осуществляется через локальную сеть, без внешнего подключения (из Интернета и т. Д.)
Мои текущие решения (пожалуйста, комментарии):
- Использование REST API (безопаснее, поскольку пароль MySQL находится на сервере)
- Использование Qt с шифрованием пароля