Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java: Общие вопросы > Защита строковых данных в компилированных классах. |
Автор: Platon 7.12.2008, 16:22 |
Здравствуйте, уважаемые. Долгое время мучает вопрос защиты строковых данных в программе. А именно, если открыть класс даже в обычном редакторе, то можно заметь некоторые текстовые данные. А если заняться декомпиляцией, то можно понять в каком месте они используются... Существует ли какая-нибудь практика защиты таких данных? Или как вы боретесь с подобным явлением? Или, если совсем не боретесь, выслушиваю идеи ![]() Сам я думаю: тут дело будет завязано на шифровании строк на стадии исходного кода и компиляции, возможно вынос в отдельный файл, и механизма дешифрования на стадии работы программы. |
Автор: LSD 8.12.2008, 14:00 |
Выносишь все критичные данные в ресурсы и шифруешь их. Ключ шифрования хардкодишь в классы. Или даже раскидываешь его по разным классам и функциям и собираешь в рантайме. |
Автор: MisterCleric 8.12.2008, 14:15 |
А еще можно критические данные, которые желаешь зашифровать, вообще положить в базу. И там зашифровать тоже можешь. а дальше естественно по ключу. Ключ можешь выдать вместе с лицензией на свое приложение |
Автор: Vasay 8.12.2008, 14:23 |
В любом случае - кому надо взломает. Хотите более менее надежную защиту - выносите логику на сервер. |
Автор: Platon 11.12.2008, 16:31 |
Vasay, натолкнуло на определенные мысли ![]() Только если не логику хранить на сервере, а данные? Данные в конкретном случае имеют большой вес. Стабильный сервер взломщикам тоже не по корману, а если по корману - с хостерами легко эту тему перетереть. Я правильно рассуждаю? Добавлено @ 16:40 Хотя я себе уже представляю подделку. Декомпилируют программу, изменяют адрес сервера на localhost. Делают на локалхосте иммитационный сервер с базой данных и все данные остаются/запрашиваются с локалхоста. |
Автор: SoulKeeper 11.12.2008, 17:06 |
А чем плохо хранение логики на сервере? |
Автор: Zlatogorov 12.12.2008, 11:03 |
Тоже заморачивались с защитой софта как такогового, адекватного решения не нашли. Написал dll которая привязывает к железу и требует лицензию, на том и порешили. Разбрасывание ключа по классам мало что даст, просто процесс взлома удлиннится минут на 20-30. |
Автор: Platon 15.12.2008, 21:07 |
SoulKeeper, довольно затратно поддерживать 3к+ клиентов, тем более в кустарных условиях. AxNe0, увы нет. Zlatogorov, про привязку к железу тоже думал. Ничего если в ПМ пообщаемся? Только я думаю, при декомпиляции даже привязка к железу не поможет :( |
Автор: Vasay 15.12.2008, 21:38 | ||||
Это точно.
Вопрос в том какую часть логики вынести на сервер. Можно несколько простых, но важных операций, Без которых работа программы невозможна. |