2013-09-16 5 views
1

У меня есть приложение VB6, которое подключается к базе данных MySQL. Имя пользователя и пароль находятся в исходном коде. Проблема в том, что когда я открываю файл .exe в шестнадцатеричном редакторе, имя пользователя и пароль являются видимыми.mysql password encrypt in vb6 app

Можете ли вы предложить решение, чтобы имя пользователя и пароль больше не были видны? Спасибо

+2

Это принципиально невозможно. Если пользователь может запустить ваше приложение, он может видеть, как ваше приложение подключается. Вам нужна какая-то аутентификация пользователей. О чем вы пытаетесь защитить? – SLaks

+0

Возможно, вам захочется скрыть БД за веб-службой (хотя вам все равно потребуется аутентификация пользователей). – SLaks

+0

Я просто не хочу, чтобы мое имя пользователя и пароль были видимыми, чтобы каждый мог получить доступ к моим данным. – user2622509

ответ

2

Пока эти полномочия находятся в вашем приложении, кто-то с небольшим знанием может их найти и прочитать.

Если вы зашифруете эту информацию, вам необходимо ее расшифровать в какой-то момент. Таким образом, вам понадобится ключ дешифрования в приложении - так что люди тоже могут его прочитать, отвлекая все на то, что нужно, - или вы расшифруете серверную сторону, - и в этом случае кто-то еще может просто отправить зашифрованные учетные данные.

Итак, вот совет: не основывайте безопасность своего приложения на том, что в коде содержится секретный код. Вы просто будете представлять сценаристов-детей с интересной задачей.

1

Вам действительно нужен средний уровень.

Где бы вы ни находились, избегайте совместного использования учетных данных базы данных с клиентами. В идеале вы даже не хотите, чтобы межсетевые экраны позволяли подключаться к базам данных извне.

Протоколы соединения между СУБД клиент/сервер не всегда оптимальны для использования через Интернет.

Это все причины, по которым возникла концепция «веб-службы» и использовалась еще до того, как была придумана фраза.

Конечно, это все еще оставляет вам необходимость в учетных данных у клиента. Я бы справился с этим, сохранив их извне, чтобы их можно было обновить. Вы также можете использовать две стадии дешифрования в своих программах, чтобы вы могли разделить процесс, что затрудняет обратное проектирование с декомпилированного/дизассемблированного кода. Сделайте один этап на ранней стадии инициализации, а другой позже, или сделайте второй этап непосредственно перед вашей связью.