Каков наилучший способ сохранить пользовательские настройки в Java-приложении?

Каков наилучший способ безопасного сохранения пользовательских настроек в приложении java desktop? Например, если я хочу сохранить настройки учетной записи Ftp, что это лучший способ сделать это?

благодаря

API Preferences – отличный способ сохранить пользовательские и системные настройки. Если вы хотите хранить пароли, вам придется зашифровать их. Вот хорошая статья, которая поможет вам начать работу.

Зашифрованные настройки в Java

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

 public static String getUserDataDirectory() { return System.getProperty("user.home") + File.separator + ".jstock" + File.separator + getApplicationVersionString() + File.separator; } 

Я использовал следующий код в течение 3 лет. Этот метод работает достаточно хорошо в Windows, Linux или Mac.

Обратите внимание, что в Windows никогда не сохраняйте его в Program Files , так как UAC в Windows Vista или новее может дать вам массу проблем.

Помните, чтобы поставить точку перед вашим именем приложения, чтобы она стала скрытой папкой в ​​Linux.

Хорошая вещь, используя эту методологию, заключается в том, что вы не ограничиваете себя, сохраняя только примитивную ценность. Вместо этого вы можете сохранить все состояние объекта на диск с помощью xstream

Например :

 public static boolean toXML(Object object, File file) { XStream xStream = new XStream(); OutputStream outputStream = null; Writer writer = null; try { outputStream = new FileOutputStream(file); writer = new OutputStreamWriter(outputStream, Charset.forName("UTF-8")); xStream.toXML(object, writer); } catch (Exception exp) { log.error(null, exp); return false; } finally { close(writer); close(outputStream); } return true; } 

Безопасное хранение одного пароля довольно сложно. Предположим, вы шифруете пароль с помощью секретного ключа. Затем, когда ваше приложение начинается снова, ему нужен секретный ключ, откуда он это получает?

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

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

Есть продукты, доступные для борьбы с этим сусло, если у вас есть серьезная потребность, вам, вероятно, нужно их исследовать.

  • Лучший способ сравнить даты в Android
  • Воспроизведение музыки BG через действия в Android
  • Как поймать особые исключения Firebase Auth
  • не реализуя все методы интерфейса. Является ли это возможным?
  • Сортировка TreeMap по значению
  • Android ClassNotFoundException
  • Как программно удалить файлы на Android?
  • Android: java.lang.OutOfMemoryError:
  • Отсутствует оператор return для оператора if / else
  • OnClickListener не отвечает
  • Как читать / писать строки из файла на Android
  • Interesting Posts

    Черный экран, когда компьютерные сапоги

    Почему мой светодиодный индикатор жесткого диска мигает каждую секунду?

    Как получить список IP-соединений, подключенных в одной сети (подсеть), используя Java

    Как настроить подтверждение электронной почты с помощью Devise?

    Закрыть приложение и запустить домашний экран на Android

    Ошибки проверки Laravel 5.2

    Несколько символов в символьной константе

    Windows 7: не удается привязать приложение к панели задач

    Статическая функция перегрузки C ++ с нестатической функцией

    Как перебирать приоритет_queue?

    Преобразование существующего ПК в виртуальную машину с виртуальной коробкой

    Ошибки, управляющие жизненным циклом UnityPlayer в приложении для собственных приложений Android

    WPF: установка ширины (и высоты) в процентах

    Как я могу предотвратить «Читать дальше: www.site.com» от того, что вы вводили не-Tynt JavaScript в действия копирования-вставки?

    Как указать элемент, после которого можно вставить в css flexbox?

    Давайте будем гением компьютера.