>  기사  >  Java  >  난독화된 코드에서 민감한 문자열을 어떻게 숨길 수 있나요?

난독화된 코드에서 민감한 문자열을 어떻게 숨길 수 있나요?

DDD
DDD원래의
2024-10-30 16:12:03574검색

 How Can Sensitive Strings Be Hidden in Obfuscated Code?

난독화된 코드에 민감한 문자열 숨기기

독점 정보를 보호하기 위해 코드를 난독화하는 것은 일반적인 관행이지만, 통찰력 있는 눈은 여전히 ​​숨겨진 문자열을 찾아낼 수 있습니다. 중요한 데이터를 효과적으로 숨기려면 다음 기술을 고려하십시오.

인코딩과 암호화

일상적인 검사를 방지하는 것이 목적이라면 인코딩으로 충분할 수 있습니다. android.util.Base64 클래스는 편리한 방법을 제공합니다. 그러나 인코딩은 보안이 미미합니다.

공격자로부터 더 강력한 보호를 위해 AES와 같은 암호를 사용한 대칭 암호화를 권장합니다. javax.crypto.Cipher 클래스는 사용 예를 제공합니다.

수동 암호화 및 복호화

다음 단계에 따라 암호화 및 복호화를 수동으로 구현하세요.

  1. 알려진 키로 문자열을 암호화합니다.
  2. 해독된 문자열 버전을 사용하도록 코드를 업데이트합니다(예: mySecret = "http:// 대신 MyDecryptUtil.decrypt(encrypted, key) 사용). example.com").

타사 DRM 솔루션

Google 라이선스 서버와 같은 타사 DRM 솔루션 사용을 고려해 보세요. 자체 롤링 솔루션에 비해 잠재적인 보안 이점을 제공하지만 여전히 수동 암호화 및 암호 해독과 유사한 제한 사항이 있습니다.

R 클래스 문자열

에서 언급한 R 클래스 문자열 귀하의 코드는 리소스에 대한 참조입니다. ProGuard와 같은 난독처리기는 R 클래스 자체를 난독화하는 것이 아니라 리소스 ID에 대한 참조를 난독화합니다. 동일한 번호를 유지하지만 실제 리소스를 가리키는 매핑이 변경됩니다.

이 경우 2130903058은 레이아웃 파일을 참조합니다. 디컴파일된 R 클래스가 없으면 그것이 나타내는 리소스를 직접 검색할 수 없지만 여전히 리소스의 바이너리 데이터에 대한 주소입니다.

위 내용은 난독화된 코드에서 민감한 문자열을 어떻게 숨길 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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