Подтвердить что ты не робот

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

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

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

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

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

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

4b9b3361

Ответ 1

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

Ответ 2

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

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

Ответ 3

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

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

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

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

И, конечно же, Dojo Инструментарий хорошо работает с PhoneGap.

Ответ 4

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

protected String base64Str = "+wL00h2L....";
wv1.loadData(base64Str, "text/html; charset=utf-8", "base64");