Ho una routine di crittografia e decrittografia mcrypt all'interno di una delle mie app Android. Questo è essenzialmente decifrare una stringa che viene recuperata tramite. chiamata remota. Naturalmente la "chiave segreta" è memorizzata all'interno del codice, ma chiunque abbia apktool può ovviamente vedere il codice e vedere la mia chiave segreta.Mantenere la chiave segreta SEGRETO - all'interno di un'app Android .. qualsiasi idea
Esiste comunque la possibilità di crittografare tutto il codice Java in modo che, anche se non fosse stato compilato, non sarebbe leggibile/comprensibile?
Ho sentito parlare di ProGuard, ma dalla lettura a riguardo, non mi sembra sufficiente per questo scopo.
La domanda è: perché la stringa è crittografata? Se è per il trasporto e la sicurezza di archiviazione del server, utilizzare la crittografia a chiave pubblica. Se vuoi "nasconderlo" agli utenti, non sei fortunato dato che tutto ciò che la tua applicazione può "vedere" può farlo anche agli utenti. –
La stringa è crittografata per nascondere la posizione di un file che è in streaming - l'intenzione è di offuscare e rendere meno difficile per gli utenti occasionali/script kiddie di scaricare l'mp3 indipendentemente dall'app. So cosa stai dicendo e capisco che tutto ciò che l'app può vedere - chiunque sia sufficientemente determinato può eseguire il debug, decodificare o decompilare - sto solo cercando di renderlo più difficile. Qualcuno determinato continuerà comunque a fare tutto ciò e riuscirà. No biggie .. basta tenere fuori i kiddie di script in sostanza .. – SpacialWise
Perché non avere il client generare la coppia di chiavi e inviare la sua chiave pubblica al server con la richiesta? –