>  기사  >  Java  >  난독화된 코드에서 민감한 문자열을 효과적으로 숨기려면 어떻게 해야 합니까?

난독화된 코드에서 민감한 문자열을 효과적으로 숨기려면 어떻게 해야 합니까?

DDD
DDD원래의
2024-10-31 22:28:28135검색

 How can I effectively hide sensitive strings in obfuscated code?

난독화된 코드에서 숨겨진 문자열 공개

ProGuard와 같은 난독처리기는 보이는 문자열을 난독화하여 코드 보안을 강화할 수 있지만 민감한 정보에는 충분하지 않을 수 있습니다. URL이나 라이선스 등 data.

민감한 문자열 숨기기

민감한 문자열을 효과적으로 숨기려면 다음 기술을 고려하세요.

  • 인코딩: Base64와 같은 방법을 사용하여 문자열을 인코딩하여 표시되도록 합니다. 암호화됩니다.
  • 암호화: AES와 같은 알고리즘을 사용하여 문자열을 암호화하면 암호화 키 없이는 문자열을 해독할 수 없게 됩니다.

이러한 기술을 구현하려면 다음을 수행할 수 있습니다.

  1. 알려진 문자열을 사용하여 수동으로 문자열을 암호화합니다. 키.
  2. 해독된 문자열 버전을 사용하도록 코드를 조정하세요. 예:
<code class="java">// Before encryption
public class Foo {
    private String mySecret = "http://example.com";
}

// After encryption
public class Foo {
    private String encrypted = "<encrypted string>";
    private String key = "<encryption key>";
    private String mySecret = MyDecryptUtil.decrypt(encrypted, key);
}</code>

R 클래스 찾기

디컴파일 중에 난독화로 인해 R 클래스가 항상 쉽게 표시되지는 않습니다. 그러나 ProGuard 매핑 파일은 해당 위치에 대한 통찰력을 제공할 수 있습니다.

  • 매핑 파일에서 "classes" 섹션을 찾으세요.
  • 원본을 찾으려면 "R.java"를 검색하세요. R 클래스의 경로입니다.
  • R에 액세스하려면 디컴파일된 코드 디렉터리에서 해당 경로로 이동하세요. class.

R 클래스 번호 이해

디컴파일된 코드에서 "2130903058"과 같은 숫자는 리소스 ID를 나타냅니다. 이 숫자는 레이아웃 파일과 같은 프로젝트의 리소스를 나타냅니다.

해당 리소스를 찾으려면

  • 매핑 파일에서 R.java 파일을 디컴파일합니다.
  • 디컴파일된 R.java 파일에서 리소스 ID를 검색하세요.
  • 해당 리소스(예: 레이아웃 파일)는 검색결과에 명시되어 있습니다.

위 내용은 난독화된 코드에서 민감한 문자열을 효과적으로 숨기려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.