Obfuscar arquivo .properties

Como faço para “obfuscar” o código dentro de um properties ? Tem como ?
Eu tô querendo colocar o código SQL da minha aplicação tudo dentro do properties.
Mas aí o problema é que qdo. mandar p/ o cliente a aplicação, terei q mandar o arquivo properties junto p/ o sistema poder ler, (a não ser que tenha um modo de não precisar mandar o properties junto c/ o .class, eu não conheço…)
Aí o cara pode abrir o properties e ver todo meu código SQL, alterar e fazer o diabo no sistema.
Tem alguma solução p/ ele não conseguir ver o código SQL q tá no properties ?

Solução [trivial] 1:

  • Colocar o atributo do arquivo como READ-ONLY (apenas leitura)

Solução [ruim] 2:

  • Colocar SQL hard-coded (dentro da classe)

Solução [boa] 3:

  • Encriptar o arquivo com os SQLs

Sei não…mas eu acho que as sentenças SQL serão “texto puro”. Então, mesmo que você “ofusque” os arquivos .class que as conterão, se o cliente o descompilar, vai poder alterar da mesma forma.

Eu escrevi .class porque um motivo simples: são as classes que você ofusca, não os properties! :wink:

Você pode fazer uma sacanagenzinha: os arquivos de propriedades serem, na verdade, arquivo compactados. Tá certo que se o cara tiver um pouco de cérebro vai se tocar disso…mas como usuário geralmente não tem muito desse material tão precioso… :twisted:

Se é uma aplicação que acessa um servidor remoto, a forma mais segura é usar stored procedures (se o banco de dados permitir). Dessa forma, você estará se protegendo de sentenças SQL alteradas, já que elas não estarão armazenadas no cliente!

Agora, se é tudo local, o máximo que você pode fazer é: mexeu no programa? Alterou algo que não devia? “So sorry…meu preço por hora é X para arrumar a caca”!

Voce pode gravar as Strings SQL utilizando o proprio java, so q em modo binario, utilize para gravar os arquivos properties o metodo getBytes() da classe String.

Assim vc pode fazer assim prop1.insert=<string_de_insert>.getBytes();

e mandar gravar. Depois he so pegar a <string_de_insert> e decodificar.

Nunca testei… :lol: Mas acho q pode funcionar…

hehehe, gostei disso :slight_smile:
Valeu pessoal…