난독화된 코드에서 민감한 문자열 숨기기
독점 정보를 보호하기 위해 코드를 난독화하는 것은 일반적인 관행이지만 안목 있는 눈은 여전히 숨겨진 문자열을 찾아낼 수 있습니다. 민감한 데이터를 효과적으로 숨기려면 다음 기술을 고려하세요.
인코딩과 암호화
일상적인 검사를 방지하는 것이 목적이라면 인코딩으로 충분할 수 있습니다. android.util.Base64 클래스는 편리한 방법을 제공합니다. 그러나 인코딩은 미미한 보안을 제공합니다.
공격자로부터 더 강력한 보호를 위해 AES와 같은 암호를 사용한 대칭 암호화를 권장합니다. javax.crypto.Cipher 클래스는 사용법의 예를 제공합니다.
수동 암호화 및 복호화
다음 단계에 따라 암호화 및 복호화를 수동으로 구현합니다.
타사 DRM 솔루션
Google 라이선스 서버와 같은 타사 DRM 솔루션 사용을 고려해 보세요. 자체 롤링 솔루션에 비해 잠재적인 보안 이점을 제공하지만 여전히 수동 암호화 및 암호 해독과 유사한 제한 사항이 있습니다.
R 클래스 문자열
에서 언급한 R 클래스 문자열 귀하의 코드는 리소스에 대한 참조입니다. ProGuard와 같은 난독처리기는 R 클래스 자체를 난독화하는 것이 아니라 리소스 ID에 대한 참조를 난독화합니다. 동일한 번호를 유지하지만 실제 리소스를 가리키는 매핑을 변경합니다.
이 경우 2130903058은 레이아웃 파일을 참조합니다. 디컴파일된 R 클래스가 없으면 그것이 나타내는 리소스를 직접 검색할 수 없지만 여전히 리소스의 바이너리 데이터에 대한 주소입니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3