Android de chiffrement / déchiffrement à l'aide d'AES
Est-il un bon exemple de comment de chiffrer et de déchiffrer de l'image et d'autres fichiers avec AES sur Android?
- Chiffrement sur Android n'est pas fondamentalement différente de celle de toute autre plate-forme Java SE. Et comme toutes les réponses ci-dessous sont en insécurité, soit vous devez comprendre la cryptographie avant de commencer à mettre en œuvre ou d'emprunt de la cryptographie exemples.
- Vous devriez essayer ce github.com/facebook/conceal.
Vous devez vous connecter pour publier un commentaire.
Avertissement: Cette réponse contient un code vous ne devriez pas l'utiliser car il est dangereux (à l'aide de SHA1PRNG pour la dérivation de clé et à l'aide de l'algorithme AES en mode ECB)
Au lieu de cela, utiliser PBKDF2WithHmacSHA1 pour la dérivation de clé AES et de la SRC ou GCM mode (GCM fournit à la fois la vie privée et de l'intégrité)
Vous pouvez utiliser ces fonctions:
Et appelez-les comme ceci:
Cela devrait fonctionner, j'utilise le même code dans un projet.
BadPaddingException
. J'ai fait de vous avertir de ce code, non?Cipher.getInstance("AES/GCM/NOPADDING");
Comme mentionné par Nacho.L PBKDF2WithHmacSHA1 dérivation est utilisé car il est plus assurée.
Une vieille question, mais je mettre à niveau les réponses soutenir Android avant et après l'4.2 et compte tenu des dernières modifications selon Les développeurs Android blog
Plus je laisse un exemple de travail sur mon dépôt github.
android.util.Base64.encode(bytes, Base64.DEFAULT)
etandroid.util.Base64.decode(decryptedData, Base64.DEFAULT)
?Si vous êtes le cryptage d'un fichier texte, puis de le test suivant/échantillon peut être utile. Il effectue les opérations suivantes:
et enfin tampons qu'elle
SecureRandom
pour la dérivation de clé. Si vous voulez savoir comment instancier un algorithme de chiffrement, vérifier ericksons la réponse de ici. N'utilisez pas de statique IV (pour la même clé), et l'utilisation PBKDF2 de mot de passe -> clé de conversion. Note qu'un non-authentifié de chiffrement uniquement assure la confidentialité, et seulement si, il n'est pas utilisé dans un protocole de transport. Si vous voulez aider, vous pouvez graver les autres réponses (et de voter mes commentaires) 🙂AES crypter/décrypter dans android
AES crypter/décrypter en c#
API Simple pour effectuer le chiffrement AES sur Android. C'est de l'Android homologue à la AESCrypt bibliothèque Ruby et Obj-C (avec les mêmes valeurs par défaut):
https://github.com/scottyab/AESCrypt-Android
Pour AES/SRC/PKCS7 de chiffrement/déchiffrement, il suffit de Copier et de coller le code suivant et de le remplacer SecretKey et IV avec votre propre SecretKey et IV.
Pour ajouter un château gonflable pour Android projet: https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk16/1.45
Ajouter cette ligne dans votre Activité Principale:
Essayer avec le code ci-dessous c'est de travailler pour moi.
public static String déchiffrer(Chaîne cryptée) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, InvalidAlgorithmParameterException, IllegalBlockSizeException, BadPaddingException, UnsupportedEncodingException {