Как зашифровать ресурсы HTML + JS в мобильном приложении Android Phonegap? - PullRequest
28 голосов
/ 28 мая 2011

У меня мобильное приложение, созданное с использованием обычной обертки Phonegap и HTML5. Моя цель - зашифровать файлы в каталоге ресурсов (файлы JS и HTML), чтобы они не могли быть прочитаны людьми, которые разархивируют файл APK и хотят видеть источники JS.

Хорошо, я знаю, что не существует абсолютно идеального решения. На пути к этому вопросу я уже пробовал варианты решения защиты от копирования моих источников (минимизация JS, обфускация и т. Д.), Но я обнаружил, что очень легко получить исходный код (используя JSBeautifier, firebug включая запутанные скрипты и т.д ...).

Так что мой вопрос - есть ли какой-нибудь простой способ, как зашифровать файлы JS + HTML (чтобы они не читались и не были полезны при простом распаковывании файла APK), и как реализовать это в платформе JAVA для платформы Android?

Примечание: Я не знаю языка JAVA, поэтому, пожалуйста, включите рабочий пример, который я могу использовать.

Редактировать: Я также исследовал функцию ProGuard при создании окончательного пакета APK, однако он для меня бесполезен, поскольку он работает только с файлами JAVA, но оставляет каталог assets как есть.

Ответы [ 4 ]

11 голосов
/ 20 сентября 2011

Некоторое время назад у меня была такая же проблема, но на iOS.И результат был только после исправления PhoneGap для iOS.Я написал статью на http://oleksiy.pro/2011/09/20/phonegap-application-encryption/. Кроме того, для Android этот метод может быть слабым, поскольку код Java может быть на 99% декомпилирован, и хакер увидит ваш ключ.

4 голосов
/ 28 мая 2011

Лучшая комбинация, которую я нашел, это DojoToolkit и компилятор Closure в расширенном режиме.

Закрытие в расширенном режиме делает код JavaScript практически невозможным для обратного проектирования, даже после прохождения через beautifier. Как только ваш код JavaScript запутывается до неузнаваемости и возможности перепроектировать, ваш HTML не раскроет большую часть ваших секретов.

Эта ссылка для использования Dojo Toolkit с компилятором Closure в расширенном режиме для мобильных приложений:

http://dojo -toolkit.33424.n3.nabble.com / file / n2636749 / Using_the_Dojo_Toolkit_with_the_Closure_Compiler.pdf? By user = t

И, конечно, Dojo Toolkit хорошо работает с PhoneGap.

4 голосов
/ 28 мая 2011

Нет простого способа сделать это. Если вы хотите зашифровать свой JavaScript, вам понадобится ключ для его расшифровки. Ключ не может быть сохранен на устройстве с тех пор, как легко найти ключ и расшифровать исходный код. Если ваше приложение требует от пользователя входа в систему, вы можете вернуть ключ шифрования после входа в систему и использовать этот ключ для расшифровки файлов JS и HTML. Существуют стандартные библиотеки шифрования Android, которые можно использовать через плагин PhoneGap.

Сказав это, это просто JavaScript, поэтому, если вам действительно нужно что-то зашифровать, вам, вероятно, стоит подумать об изменении вашего подхода.

0 голосов
/ 16 мая 2014

Вы можете использовать веб-просмотр и загрузить строку base64:

protected String base64Str = "+wL00h2L....";
wv1.loadData(base64Str, "text/html; charset=utf-8", "base64");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...