난독화된 코드에 민감한 데이터 숨기기
Android 애플리케이션을 배포할 때 서버 URL, 디컴파일된 코드에서. ProGuard와 같은 난독화 기술은 어느 정도 보호 기능을 제공하지만 모든 문자열을 효과적으로 숨기지 못할 수도 있습니다.
문자열 암호화 및 디코딩
이 문제를 해결하려면 인코딩 또는 암호화를 위한 사용자 지정 메커니즘 구현을 고려하세요. 문자열. 기본적인 모호함을 위해 android.util.Base64 클래스를 사용할 수 있습니다. 그러나 이 접근 방식은 쉽게 디코딩될 수 있으므로 제한적인 보호를 제공합니다.
더 강력한 보호를 위해서는 javax.crypto.Cipher 클래스를 통한 암호화를 사용하세요. AES와 같은 대칭 암호화를 선택하고 암호화 키를 앱에 안전하게 저장하세요. 이 방법은 키가 JAR 파일 내에 노출될 수 있으므로 보안보다 지루합니다.
암호화된 문자열을 사용하도록 코드 수정
해독된 문자열을 사용하도록 코드를 수정하세요. 원시 값 대신 민감한 문자열 버전. 여기에는 일반적으로 관련 클래스나 개체를 시작하거나 초기화할 때 문자열을 해독하는 작업이 포함됩니다. 예:
이전:
<code class="java">public class Foo { private String mySecret = "http://example.com"; ... }</code>
이후:
<code class="java">public class Foo { private String encrypted = "..." // Manually created encrypted string private String key = "..."; // Encryption key private String mySecret = MyDecryptUtil.decrypt(encrypted, key); ... }</code>
대체 솔루션
타사 사용을 고려하세요. Google의 Licensing Service와 같은 DRM 솔루션입니다. 이는 자체 구현된 보호 메커니즘에 대한 보다 안전한 대안을 제공할 수 있지만 고유한 제한 사항과 요구 사항이 있을 수 있습니다.
위 내용은 Android 앱에서 민감한 데이터를 안전하게 숨기는 방법: 난독화가 충분합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!