Io tempo fa avevo scaricato una applet Java che generava in automatico un'altra applet per l'accesso a pagine internet. In questa seconda applet (quella generata) c'erano salvati Nome Utente e password di tutti coloro che erano abilitati all'accesso. Quindi mi sono incuriosito: ho decompilato tale applet e, sorpresa, tutte le stringhe erano illeggibili. Il trucco? Semplice: colui che ha scritto l'applet ha scritto anche un algoritmo per criptare e decriptare le stringhe, rendendole, in questo modo, illeggibili da parte di chi avesse decompilato il bytecode.
Quindi, perchè non fai lo stesso anche tu? Invece di lasciare le stringhe in chiaro nel tuo programma, scrivi una piccola applicazione (anche solo per consolle) che prenda in input una stringa e ne dia come output la stringa codificata, poi nella tua applicazione inserisci il metodo opposto, che legga una stringa codificata e la decodifichi run-time. In questo modo puoi inserire nella tua applicazione le stringhe codificate, che verranno visualizzate correttamente solamente in fase d'esecuzione.
Certamente questo metodo non ti offre la sicurezza, però renderà sicuramente ardua la vita a chi volesse cimentarsi nel reverse ingegneering per tentare di carpirne l'algoritmo!

Ciao.