In Android, è possibile utilizzare tutto il sottosistema di crittografia disponibile in Java. Tale comparto è particolarmente fornito e adatto ad ogni uso per crittografia sia simmetrica sia asimmetrica nonché certificati digitali però può risultare piuttosto dispersivo per chi necessita di un approccio rapido per salvare i propri dati in maniera più sicura. Per questo presentiamo una libreria efficace ma dall’approccio piuttosto rapido: Encryption.
Per farne uso in una nostra app dobbiamo, per prima cosa, includerla nel progetto Android Studio:
- richiedendo di utilizzare il repository di JitPack:
allprojects { repositories { ... maven { url 'https://jitpack.io' } } }
- inserendo successivamente l’opportuna direttiva Gradle:
compile 'com.github.simbiose:Encryption:2.0.0'
A questo punto, la si può utilizzare nel seguente modo:
String chiave= "mia password"; String salt = "una string da usare come Salt"; byte[] iv = new byte[16]; Encryption encryption = Encryption.getDefault(key, salt, iv); String encrypted = encryption.encryptOrNull("Questa è la frase segreta che deve essere crittografata");
Le prime righe servono per inizializzare l’oggetto codificatore al quale abbiamo fornito la parola chiave da usare, il salt ed un vettore di inizializzazione per ridurre l’efficacia di attacchi finalizzati alla decodifica non autorizzata.
Per riportare in chiaro il nostro messaggio crittografato, conservato nella stringa encrypted, sarà sufficiente riutilizzare l’oggetto encryption nel seguente modo:
String decrypted = encryption.decryptOrNull(encrypted);
Inoltre, per una configurazione dell’oggetto Encryption più particolareggiata si può utilizzare l’approccio del Builder incluso:
Encryption encryption = new Encryption.Builder() .setKeyLength(128) .setKey("YourKey") .setSalt("YourSalt") .setIv(yourByteIvArray) .setCharsetName("UTF8") .setIterationCount(1) .setDigestAlgorithm("SHA1") .setBase64Mode(Base64.DEFAULT) .setAlgorithm("AES/CBC/PKCS5Padding") .setSecureRandomAlgorithm("SHA1PRNG") .setSecretKeyType("PBKDF2WithHmacSHA1") .build();
Considerando che le app mobile vengono eseguite in dispositivi portati al seguito e che rischiano di essere persi o rubati facilmente, la sicurezza dei dati in esse contenuti è molto importante ed una libreria di questo genere può aiutarci ad offrire funzionalità rassicuranti ai nostri utenti.
Provatela – se non l’avete ancora fatto – e fateci sapere cosa ne pensate.
No Responses to “Android, crittografare dati velocemente con Encryption”