가능한 중복 :
hiding strings in Obfuscated code난처 : 자바에서 하드 코드 된 값을 숨길
내가 열심히 디 컴파일 할 수 있도록 내 응용 프로그램의 일부 정적 문자열 위해 조금 숨기기 위해 노력하고있어 , 암호 알고리즘 이름과 같은 상수와 같은이 방법은 난독 화 된 코드에서 찾기가 더 어렵습니다.
는 내가 좋아하는 일을 생각했습니다
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});
그리고 마지막 두 옵션 원시 옵션보다는 "어두운"것 같다하지만 난이 일을 더 나은 방법이 상상한다.
어떻게 향상시킬 수 있습니까? 감사합니다
Android 용으로 프로그래밍 한 적이 없지만 문제의 요점을 볼 수 없습니다. 사용자가 디 컴파일하는 방법을 모르고 메모장을 통해서만 코드를 읽을 수 있다면 사용하지 않은 알고리즘 이름을 넣고 실제로 연관되어있는 코드 이름을 알지 못합니다. s/he가 디 컴파일하는 방법을 알고 있다면 시스템으로 라이브러리 호출을 대체 할 수 없도록하는 난독 화가 없습니다 (잘 알려진 메소드 이름을 가진 잘 알려진 라이브러리를 사용하여 암호를 인스턴스화하는 것 같습니다). out.println. – ignis
간단한 gradle 함수를 사용하여 이러한 종류의 문자열을 숨기고 있습니다. 그것은 육안으로 만 보호 할 수 있지만 어떤 경우에도 아무것도 아닌 것보다 낫습니다. https://gist.github.com/shomeser/68f4fe360be0edac95e4 –