Eventuali duplicati:
hiding strings in Obfuscated codeOffuscamento: nascondere i valori hardcoded in java
sto cercando di nascondere un po 'alcune stringhe statiche di mia app in modo da rendere più difficile decompilare in questo modo, come le costanti come i nomi degli algoritmi di cifratura, è più difficile trovare nel codice offuscato.
Ho considerato le cose come:
String CONCAT= "concat"+"string";
String RAW_STRING= "raw_string";
String FROM_BYTES=new String("from_bytes".getBytes());
String FROM_CHARS=new String(new char[]{'f','r','o','m','_','c','h','a','r','s'});
String FROM_CHAR2=new String(new char[]{102,114,111,109,95,99,104,97,114,115,95,50});
E le ultime due opzioni sembra essere "più scuro" rispetto all'opzione grezzo ma immagino ci sono modi migliori per fare questo.
Come posso migliorare? Grazie
Non ho mai programmato per Android, tuttavia non riesco a vedere il punto della domanda. Se l'utente non sa come decompilare, è solo in grado di leggere il codice tramite il Blocco note, è sufficiente inserire alcuni nomi di algoritmo inutilizzati e non saprà quale è realmente coinvolto. Se sa come decompilare, non c'è alcuna offuscazione che può impedire a lui/lei di sostituire la chiamata alla libreria (suppongo che tu usi una libreria ben nota con un nome di metodo ben noto per istanziare il codice) con un Sistema. out.println. – ignis
Sto nascondendo questo tipo di stringhe usando la semplice funzione gradle. Protegge solo da occhio nudo, ma in ogni caso, è meglio di niente: https://gist.github.com/shomeser/68f4fe360be0edac95e4 –