Protezione plists xml a Cocoa / Objective C
-
13-09-2019 - |
Domanda
Sto scrivendo un programma che legge le informazioni da am xml plist nel bundle all'avvio. Le informazioni contenute nel plist è stato compilato attraverso molti giorni di lavoro e vorrei assicurare che non può essere estratto facilmente dal fascio applicazione da un'altra parte dopo la distribuzione. C'è un modo per garantire o crittografare plists XML che si includono nel proprio bundle app?
Qualsiasi aiuto sarebbe molto apprezzato per favore.
Soluzione
Non v'è alcun built-in funzione di crittografia in plist. Molte persone considera il compressione crittografia.
Ecco cosa farei,
- Make up una chiave di crittografia.
- scrivere un piccolo programma per crittografare il plist in un file binario utilizzando
SecKeyEncrypt()
. - Inserire il file binario nel pacchetto.
- Nella app, nascondere la chiave da qualche parte. Ad esempio, memorizzarli come pezzi in modo che non è facile da trovare una discarica.
- Quando si STARTUP l'applicazione, leggere il file binario da fascio, decifrare usando
SecKeyDecrypt()
utilizzando la chiave e memorizzare il testo in chiaro nella memoria. - Il testo in chiaro è il plist e caricare il plist dalla memoria.
Questo è ancora considerato offuscando perché la chiave è disponibile nel tuo pacchetto, ma sarà abbastanza difficile per scoraggiare la maggior parte degli hacker casuali.