| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Хранение настроек java-приложения |
| Автор: koreyko 28.10.2011, 01:07 |
| Здравствуйте! Есть десктопное приложение под Windows, необходимо где-то хранить настройки для подключения к серверу (логин, пароль, урл и т.д.), вернее несколько комплектов настроек. Заводить для этого внешний ini\xml-файл - неудобно. Нашел класс Preferences, который позволяет записывать данные в реестр. Разобрался, вроде все работает, однако в результате выяснилось, что там не рекомендуется использовать заглавные буквы, ибо при записи в реестр происходит их кодирование каким-то странным образом. А это для меня критичное ограничение. Пришла в голову мысль, а не использовать ли мне для решения задачи какой-нибудь xml-файл, который можно включить в jar и обращаться к нему как к ресурсу? С первого взгляда должно работать, хотя наверняка есть какие-то подводные камни Подскажите, пожалуйста, кто с таким уже сталкивался. Или может быть есть более элегантные и надежные способы хранения настроек без использования внешних файлов. Спасибо. |
| Автор: Stolzen 28.10.2011, 06:52 |
| Имхо лучше использовать properties - и класть его в classpath как ресурс. |
| Автор: koreyko 28.10.2011, 13:31 | ||||
Спасибо, разобрался. Увидев, что записанный с помощью Preferences пароль PASSWORD хранится в реестре в виде /P/A/S/S/W/O/R/D я подумал, что Preferences.get(..) вернет /P/A/S/S/W/O/R/D. Сейчас проверил - возвращается корректное значение. |
| Автор: math64 28.10.2011, 20:05 | ||
Пароль лучше хранить в зашифрованном виде, причём использовать метод шифрования, который даже не предполагает возможности расшифровки - введённый пароль зашифровывается повторно и сравнивается с сохранённым зашифрованным паролем. |
| Автор: koreyko 29.10.2011, 13:04 | ||||
Спасибо, я об этом уже думал. Подскажите, пожалуйста, какими конкретно решениями (классами) вы рекомендуете воспользоваться. |
| Автор: math64 29.10.2011, 20:35 |
| Описанная мною методика используется в Linux для хранения паролей - можно посмотреть исходники утилиты смена пароля и портировать в Java. Может быть кто-то уже это сделал, я шифрованием в Java не занимался. |
| Автор: math64 29.10.2011, 21:28 |
| http://ru.wikipedia.org/wiki/MD5 MD5 реализован в Java, так что воспользоваться просто. |
| Автор: koreyko 31.10.2011, 00:54 |
| Да, спасибо, я нашел: http://download.oracle.com/javase/6/docs/api/java/security/MessageDigest.html |