Quando si compila un file .java in un file .class, se si ha una linea comeCome impedire alle persone di visualizzare stringhe letterali in file di classe compilati?
String s = "This is a String"
Se si apre il file .class in un editor di testo, vedrete
This is a String
Da qualche parte nel file in mezzo al gobblety gook.
Che va bene e dandy per la maggior parte delle cose, ma non quando si tratta di informazioni sensibili come le chiavi API.
Ovviamente, un'alternativa è leggere la chiave API da un altro file, ma ciò rende SEMPLICE FACILE trovare la chiave, poiché ora la persona può semplicemente aprire "key.txt" quando apre il file .jar .
Quindi, come si crittografa una stringa letterale nel file .class?
Il modo più comodo sarebbe quello di rimuovere qualsiasi informazione sensibile dal codice e memorizzarla in un repository (possibilmente crittografato) di qualche tipo. – Rouby
Ho lo stesso problema - quando decompro altre app (apk Android) questa è la prima cosa da cercare e che in realtà porta a decodificare l'apk e capire il codice decompilato –