Lorsque vous souhaitez chiffrer des fichiers, des chaînes de caractères, etc., il existe deux approches principales. Vous devriez commencer par créer une classe ou une méthode pour convertir votre chaîne/fichier en un tableau d'octets. Construisez une autre méthode pour reconvertir le tableau d'octets en chaîne/fichier.
Vous pouvez crypter un fichier en utilisant 2 approches : 1 - Clé symétrique - Un mot secret (généralement une énorme chaîne de caractères ou un mot de passe défini par l'utilisateur) cryptera votre fichier et votre mot de passe, et le même mot de passe sera utilisé pour le décrypter. 2 - Clé asymétrique - Vous générez une paire de clés. L'une est appelée clé publique et l'autre est appelée clé privée. Les clés publiques sont utilisées pour crypter les fichiers, les clés privées pour les décrypter. Il s'agit de l'approche la plus "professionnelle".
Si vous voulez une approche vraiment sûre, vous devriez télécharger GnuPG. GnuPG est un exécutable qui gère le cryptage asymétrique, vous pouvez construire une classe pour travailler avec GnuPG et laisser GnuPG gérer votre processus de cryptage/décryptage.
Il existe une approche non sûre qui est "native" de Java (clé symétrique) et qui pourrait vous convenir :
Le cryptage :
byte[] key = //... password converted to an array of bytes
byte[] dataToSend = ...
Cipher c = Cipher.getInstance("AES");
SecretKeySpec k =
new SecretKeySpec(key, "AES");
c.init(Cipher.ENCRYPT_MODE, k);
byte[] encryptedData = c.doFinal(dataToSend);
Décryptage :
byte[] key = //
byte[] encryptedData = //
Cipher c = Cipher.getInstance("AES");
SecretKeySpec k =
new SecretKeySpec(key, "AES");
c.init(Cipher.DECRYPT_MODE, k);
byte[] data = c.doFinal(encryptedData);
J'espère que cela vous aidera.