2013-03-07 4 views
1

애셋/폴더에 많은 양의 JavaScript가있는 애플리케이션을 게시하려고합니다. 나는 축소 된 &을 모두 축소하여 모든 것을 (JS) 하나의 큰 파일 500kb에 결합했다. 암호화 방법과 자산 폴더에서 숨길 방법을 찾고 있습니다.애셋을 암호화하는 방법

의견을 작성하는 가장 좋은 방법은 무엇입니까?

  1. Java 클래스 안에 일반 문자열로 저장하고 (가능한지는 모르겠 음) proguard에게이를 구체적으로 암호화하도록 알려줍니다. -> 내가 자산 내부에 암호화 된 파일로 onintercepturlloading

  2. 스토어를 통해 WebView에 봉사 할 것입니다, 제 3 자 또는 Java 암호화 루틴 핫 해독 - 내가 듣고 싶다고. 당신이

을 원하는

  • 이상적 솔루션을 빌드 프로세스의 일부로 포함되어야하지만 다른 해결책이 없다면 내가 수동으로 암호화 된 데이터를 생성합니다.

    EDIT : DexGuard는 전문적인 방법으로 보이지만, 무료 대안은 350 유로입니까?

    왜 내가 암호화하고 싶은지 묻지 마십시오. 치과에 갈 필요가있는 것처럼 하루 하루를해야합니다.

  • +2

    왜 암호화 하시겠습니까? 불필요한 DRM 체계 대신 더 나은 콘텐츠를 만드는 데 집중하십시오. – vertti

    +2

    @vertti 누군가가 APK에 손을 대면 열어 자산 폴더에서 코드를 확인할 수 있기 때문입니다. –

    +0

    예, 알고 있습니다. 그러나 그곳에 숨기려는 비밀은 무엇입니까? – vertti

    답변

    2

    제 3 자 도구에 의존하지 말고 공급 업체가 lock-in'ed 될 수 있으므로 소프트웨어를 개발하는 것을 멈추게하면 도움이됩니다. Javascript의 내용을 하나의 큰 마지막 static static String에 넣은 다음 Proguard에게 마술이라고 말한대로 말입니다.

    취한 자 : Proguard 's documentation.

    ProGuard는 문자열 상수를 암호화합니까?

    아니요. 프로그램 코드의 문자열 암호화는 정의상 완전히 뒤집을 수 있어야합니다 (). 따라서 난독 화 수준이 향상됩니다. 코드의 풋 프린트가 증가합니다. 그러나 인기가 많은 ProGuard의 Android 용 폐쇄 형 소스 형제 인 DexGuard는 민감한 API에 대한 클래스 암호화 및 숨기기와 함께 문자열 암호화를 지원합니다.

    +0

    는 PRoGuard가 자체적으로 마술을할까요? 특히 큰 문자열을 왜곡 할 수 있도록 미세 조정할 수 있습니까? – rupps

    +0

    @rupps 업데이트 된 답변을 참조하십시오. –

    +0

    안녕하세요 @ 사이먼 감사합니다. 덱스 가드 (Dexguard)가 내가 찾고있는 것, 나는 생각한다. 나는 그것을 시험해보고 업데이트를 게시 할 것이다. – rupps

    0

    보안간주됩니다 당신이 할 수있는 일은 절대 없습니다. 따라서 난독 화은 낭비되는 노력과 보안 확보 사이의 최선의 절충점입니다 (해킹을 더 어렵게 만드는 것은 거의 없지만).

    암호화 체계를 보호하려면 키가 필요합니다. 그리고 열쇠를 숨길 곳이 없습니다. APK에 APK를 넣거나 APK에서 일부 서버로 APK를 다운로드 할 수 있습니다. 두 도구 모두 올바른 도구로 쉽게 찾을 수 있습니다.

    해커의 속도를 줄이려면 간단한 것을 선택하십시오. 자바 스크립트 부분을 다른 위치에 퍼 뜨리고 base64과 같은 간단하고 빠른 인코딩으로 인코딩합니다. 그런 다음 그들을 즉시 결합하십시오.전문적인 사람은 암호화 체계와 마찬가지로 문제를 해결할 수 있지만 구현에 많은 시간을 낭비하지 않을 것입니다. 실제 앱을 코딩하는 데 더 많은 시간이 필요합니다.

    DexGuard 내가 위에서 설명한 것 (String obfuscation)이지만 인디 개발자에게는 나는 값이 싸다 (최저 라이센스는 350 달러).

    +0

    나는 울트라 - 보호를 원하지 않지만, 모든 코드가 간단한 PkUnzip으로 노출되는 것을 원하지는 않는다. 만약 누군가가 우리 코드를 훔치기를 원한다면 나는 적어도 몇 시간 동안 디버깅을하고 싶습니다. – rupps

    +0

    그런 다음 간단한 것을 사용하십시오. 자바 스크립트 부분을 여러 위치에 분산시키고'base64 '와 같은 간단하고 빠른 인코딩으로 인코딩합니다. 그런 다음 그들을 즉시 결합하십시오. 전문적인 사람은 암호화 체계와 마찬가지로 문제를 해결할 수 있지만 구현에 많은 시간을 낭비하지 않을 것입니다. 실제 앱을 코딩하는 데 더 많은 시간이 필요합니다. – vertti

    +0

    그래, 그게 내 계획 C이지만, 나는 DexGuard에 기회를주고있다. 그게 정확히 내가 대답 한 고맙습니다. – rupps

    관련 문제