Android: ¿Es seguro poner una cadena sensible en mi código Java?

Mi aplicación utiliza varias claves de API y URL que no puedo permitir a los usuarios ver. He estado poniéndolos directamente en el código, a veces incrustado en el método que los utiliza ya veces en una clase llamada MyVals que almacena las cadenas y los números de uso común.

p.ej:

public class MyVals { private LGVals(){} public static final String DB_URL = "https://mydb.dbprovider.org/"; public static final String DB_Key = "klJF*(oh8iyhkkde"; public static final String TableKey_UserList = "o9w6owifhayf98fnwihj"; } 

¿Es seguro? ¿Hace una diferencia si estoy creando mi APK con Proguard? ¿Cuál es la mejor práctica para esto?

2 Solutions collect form web for “Android: ¿Es seguro poner una cadena sensible en mi código Java?”

No es absolutamente seguro incrustar cadenas sensibles en su código. Proguard ofusca los nombres de clase y método, pero cualquier cadena definida permanece completamente sin cambios. He aquí un ejemplo de una aplicación que he ejecutado a través de Proguard. Puede ver que el método y los nombres de clase se ofuscan, pero las cadenas (como deben ser) no cambian.

Aquí está el código original:

 public void shutdown() { if (logger.logDebug()) { logger.logDebug(LOGTAG, "Queuing shutdown message ..."); } queueMessage(new BaseMessage(true)); } 

Y el código ofuscado, fácilmente obtenido por JD-GUI:

  public void c() { if (c.logDebug()) c.logDebug("MsgRouter", "Queuing shutdown message ..."); a(new a(true)); } 

Si incrusta datos sensibles en una cadena en su aplicación, puede y se descompilará .

No, esto no es seguro.

Debe por lo menos poner la información en SharedPreferences.

Pero aún así, cualquiera con acceso root podría leerlos.

  • ¿Qué es dex en Gradle?
  • Android 'Conversión a formato dalvik falló con error 1' y proguard
  • Errores de Proguard con jar externo - devuelve el código de error 1
  • Proguard causa un accidente en los servicios de Google Play 'ActivityRecognitionResult getMostProbableActivity
  • Reducir la biblioteca de Google Play Services para usarla únicamente con Google Analytics
  • ¿Qué es proguard.txt en la libs / carpeta de un proyecto de Android?
  • Facturación en aplicaciones Android y Proguard (fuente desconocida)
  • Proguard, clase de biblioteca depende de la clase del programa
  • Android studio, donde está el archivo de mapeado proguard
  • Excepción al dexar archivos: Se ha interrumpido la traducción
  • Proguard ignora el archivo de configuración de la biblioteca
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.