Powiel możliwe:
hiding strings in Obfuscated codezaciemniania: ukryć wartości jawnie wpisanej w Javie
próbuję ukryć trochę niektóre statyczne Struny mojej aplikacji w celu utrudnić dekompilować w ten sposób, podobnie jak stałe, takie jak algorytmy szyfrowania, nazwy są trudniejsze do znalezienia w zaciemnionym kodzie.
mam uznać takie rzeczy jak:
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});
i dwóch ostatnich opcji wydaje się być „ciemniejsza” niż opcja surowego, ale wyobrażam sobie, że są lepsze sposoby na to robi.
Jak mogę to poprawić? Dzięki
Nigdy nie programowałem dla Androida, ale nie widzę sensu pytania. Jeśli użytkownik nie wie, jak przeprowadzić dekompilację, może tylko odczytać kod za pomocą Notatnika, wystarczy podać kilka nieużywanych nazw algorytmów i nie będzie wiedział, który z nich jest naprawdę zaangażowany. Jeśli wie, jak dekompilować, to nie ma zaciemniania, które może uniemożliwić zastąpienie wywołania biblioteki (domyślam się, że używasz dobrze znanej biblioteki z dobrze znaną nazwą metody do utworzenia szyfru) z Systemem. out.println. – ignis
Ukrywam takie struny za pomocą prostej funkcji gradowania. Chroni tylko gołym okiem, ale w każdym razie jest to lepsze niż nic: https://gist.github.com/shomeser/68f4fe360be0edac95e4 –