Cómo encriptar activos HTML + JS en Android Phonegap aplicación móvil?

Tengo una aplicación para móviles creada utilizando Phonegap wrapper básico y HTML5. Mi objetivo es cifrar archivos en el directorio de activos (archivos JS y HTML) para que sean ilegibles para las personas, que descomprimen el archivo APK y quieren ver las fuentes JS.

Ok, sé que no hay una solución perfecta absoluta. En mi camino a esta pregunta ya he probado las opciones de cómo resolver la protección contra copia de mis fuentes (minificación JS, ofuscación, etc.), pero me di cuenta de que es muy simple para llegar al código original (con JSBeautifier, firebug , Incluyendo scripts ofuscados, etc …).

Así que mi pregunta es – ¿hay alguna forma sencilla de cifrar archivos JS + HTML (por lo que no son legibles y útiles cuando simplemente descomprimir el archivo APK) y cómo implementarlo en JAVA para la plataforma Android?

Nota: No tengo conocimiento del lenguaje JAVA, así que por favor incluya el ejemplo de trabajo que puedo usar.

Edit: También investigué la característica de ProGuard al hacer el paquete APK final, sin embargo es inútil para mí, porque sólo se ocupa de los archivos JAVA, pero deja el directorio de activos tal como está.

Hace algún tiempo tengo el mismo problema pero en iOS. Y el resultado fue sólo después de parche PhoneGap para iOS. He escrito un artículo en http://oleksiy.pro/2011/09/20/phonegap-application-encryption/ . Además, para Android este método podría ser débil, ya que el código java podría ser descompilado al 99%, y el hacker verá su clave.

No hay una manera fácil de hacer esto. Si desea cifrar su JavaScript, necesitará algún tipo de clave para descifrarlo. La clave no se puede almacenar en el dispositivo ya que es fácil encontrar la clave y descifrar el código fuente. Si su aplicación requiere que un usuario inicie sesión, podría devolver la clave de cifrado una vez que el usuario haya iniciado sesión y utilizar esa clave para descifrar archivos JS y HTML. Existen bibliotecas de cifrado estándar de Android que puede utilizar a través de un complemento de PhoneGap.

Dicho esto, es sólo JavaScript, por lo que si hay algo que realmente necesita para cifrarse probablemente debería considerar el cambio de su enfoque.

La mejor combinación que he encontrado es el DojoToolkit y el compilador de cierre en modo avanzado.

El cierre en modo avanzado hace que el código JavaScript sea casi imposible de realizar ingeniería inversa, incluso después de pasar por un embellecedor. Una vez que su código JavaScript es ofuscado más allá de cualquier reconocimiento y cualquier posibilidad de ingeniería inversa, su HTML no revelará gran parte de sus secretos.

Este enlace para usar Dojo Toolkit con el compilador de cierre en modo avanzado para aplicaciones móviles:

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

Y por supuesto el Dojo Toolkit funciona bien con PhoneGap.

Puede utilizar una vista web y cargar una cadena base64:

protected String base64Str = "+wL00h2L...."; wv1.loadData(base64Str, "text/html; charset=utf-8", "base64"); 
  • Problemas parcelables al ofuscar con Proguard
  • Proguard y Netty 5 en Android
  • Obfuscation del código de Android. Quiero ocultar las claves de Parse.com
  • Bloqueo usando ORMLite en Android con proguard
  • Ofuscación en Android Studio
  • Proguard me da muchas advertencias y falla
  • Android: ¿Los bytes SALT aleatorios pasados ​​a AESObfuscator necesitan permanecer iguales?
  • Cómo copiar proteger PhoneGap aplicación Android? ¿Es útil la función de protección contra copia de Android Market?
  • Ejecución de ProGuard con una biblioteca AQuery
  • Android: Configuración de Proguard para ofuscar nombres de clases y métodos
  • ¿Es posible descompilar un archivo .apk de Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.