У меня есть программа java, скомпилированная как .jar
, и для этого требуется активировать ключ активации. Я хочу, чтобы jar
запросил ключ активации на первом runtime
и после его активации сохранил строку, которую он мог прочитать в течение более позднего времени runtimes
, чтобы определить, была ли она включена.Сохранение строк в java-файлах для более поздних времен работы банки? Попытка сделать строку, которая сообщает моей баночке, если она была активирована или нет.
Любые предложения о том, как это сделать?
Примечание: Я хочу, чтобы строка хранилась тайно, поэтому кто-то не мог обмануть программу, считая ее включенной.
Update: Я играл с апи предпочтения, и я использую этот код для хранения, если программа была включена:
String key = "userKey";
String saveString = "enabled";
Preferences root = Preferences.userRoot();
root.put(key, saveString);
И это, если получить в ходе последующего выполнения:
String key = "userKey";
String failedtoLoad="Program not enabled";
Preferences root = Preferences.userRoot();
String status=root.get(key, failedToLoad);
Каждый раз, когда я запускаю статус программы, заканчивается неудача с загрузкой, а saveString не найден, если только я не сохраняю строку и не получаю строку в той же среде выполнения. Почему это?
Насколько безопасно вы это хотите? Обратное проектирование вашей банки будет по-прежнему жизнеспособным вариантом, если вы не предпримете шаги по запутыванию и/или шифрованию кода. – JDong
Он не должен быть зашифрован или запутан, просто надежен. Предпочтения api могут быть только тем, что мне нужно, если я могу понять, почему он не работает, но расстегивая сам банку и записывая в нее файл .txt, все еще находится на столе. –
распаковка вашей банки и декомпиляция ваших файлов классов позволит легко удалить проверку, если вы продолжите таким образом. – JDong