Это - что-то, что можно испытать сами с OpenSource, http://www.geoserver.org http://www.openlayers.org и наконец, что не менее важно, http://geowebcache.org/
, необходимо быть в состоянии установить минимальную среду, которая делает что-то подобное maps.google за несколько часов.
Как уже отмечалось, да, кто угодно может извлечь пароль различными способами. Шифрование пароля на самом деле не поможет - если он расшифрован приложением, расшифрованная форма также будет присутствовать в какой-то момент, плюс сам ключ расшифровки (или код) становится уязвимостью. Если он отправляется куда-то еще в зашифрованном виде, то простого знания зашифрованной формы достаточно, чтобы подделать транзакцию, так что это тоже не очень помогает.
По сути, пока «злоумышленник» является также «отправителем», вы он в конечном итоге будет взломан - вот почему музыкальная и видеоиндустрия не может заставить DRM работать.
Я предлагаю вам взять копию Прикладной криптографии и прочитать первый раздел " Криптографические протоколы ». Даже не вдаваясь в математику реальной криптографии, это даст вам хороший обзор всех видов шаблонов проектирования в этой области.
Если вы храните пароль в виде обычного текста в своем приложении, кто-то может прочитать его, играя с дампами памяти, независимо от используемого вами языка или среды выполнения.
К уменьшить вероятность того, что это произойдет, храните пароль только в виде обычного текста, когда вам действительно нужно, а затем выгрузите или зашифруйте его. Здесь следует отметить, что JPasswordField возвращает char [], а не строку. Это потому, что вы не можете контролировать, когда строка исчезнет. Хотя у вас также нет контроля над тем, когда char [] исчезнет, вы можете заполнить его мусором, когда закончите с паролем.
Я говорю «уменьшить», так как это никого не остановит. Пока пароль находится в памяти, его можно восстановить, а поскольку дешифрование также должно быть частью результата, его тоже можно взломать, оставив пароль открытым.
This has nothing to do with Java - the exact same problem (if it really is one) exists for applications written in any language:
The latter is usually not considered a problem, since a modern OS does not allow arbitrary applications to observe each other's memory, and privilege escalation attacks typically rely on different vectors of attack.
If the program knows the password, anybody using the program can extract the password.
In theory you could just hook it up to the debugger... set a breakpoint...and read the string contents