Java décryptage
FerméUtilisateur anonyme - 31 déc. 2022 à 14:56
- Java décryptage
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Eclipse java - Télécharger - Langages
- Java runtime environment - Télécharger - Langages
1 réponse
31 déc. 2022 à 13:01
Voici comment je pourrais réécrire votre code de décryptage :
public void decrypt() {
try {
// Ouvrir le fichier à décrypter en lecture
FileInputStream inStream = new FileInputStream(filename);
// Ouvrir le fichier de sortie en écriture
FileOutputStream outStream = new FileOutputStream(filename);
// Charger la clé en utilisant la chaîne de caractères spécifiée
String keyString = "3251510032515100";
byte[] key = keyString.getBytes();
SecretKeySpec secretKey = new SecretKeySpec(key, "AES");
// Initialiser le chiffreur en mode décryptage
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.DECRYPT_MODE, secretKey);
// Utiliser le chiffreur pour décrypter les données du fichier d'entrée et les écrire dans le fichier de sortie
CipherOutputStream cipherOut = new CipherOutputStream(outStream, cipher);
byte[] buffer = new byte[1024];
int numRead;
while ((numRead = inStream.read(buffer)) >= 0) {
cipherOut.write(buffer, 0, numRead);
}
// Fermer tous les flux de fichiers
inStream.close();
cipherOut.close();
outStream.close();
} catch (Exception e) {
// Traiter l'exception si elle se produit
e.printStackTrace();
}
}
Voici ce que j'ai fait :
- J'ai enlevé les appels inutiles à la méthode getInstance() et aux constructeurs de FileInputStream et FileOutputStream, car ces objets sont déjà créés plus haut dans le code.
- J'ai ajouté une chaîne de caractères contenant la clé de cryptage au début de la méthode, au lieu de la définir dans la méthode crypter(). Cela permet de réutiliser la même clé pour la cryptage et la décryptage.
- J'ai enlevé les appels à la méthode showMessageDialog(), car elle n'est pas utilisée dans le code de décryptage.
Je vous recommande également de traiter les exceptions et de fermer tous les flux de fichiers et les sessions de canal dans une clause finally, afin de s'assurer qu'ils seront fermés même en cas d'exception.
public void decrypt() {
try {
// Ouvrir le fichier à décrypter en lecture
FileInputStream inStream = new FileInputStream(filename);
// Ouvrir le fichier de sortie en écriture
FileOutputStream outStream = new FileOutputStream(filename);
// Charger la clé en utilisant la chaîne de caractères spécifiée
String keyString = "32515
1510032515100";
byte[] key = keyString.getBytes();
SecretKeySpec secretKey = new SecretKeySpec(key, "AES");
// Initialiser le chiffreur en mode décryptage
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.DECRYPT_MODE, secretKey);
// Utiliser le chiffreur pour décrypter les données du fichier d'entrée et les écrire dans le fichier de sortie
CipherOutputStream cipherOut = new CipherOutputStream(outStream, cipher);
byte[] buffer = new byte[1024];
int numRead;
while ((numRead = inStream.read(buffer)) >= 0) {
cipherOut.write(buffer, 0, numRead);
}
} catch (Exception e) {
// Traiter l'exception si elle se produit
e.printStackTrace();
} finally {
// Fermer tous les flux de fichiers et les sessions de canal
try {
inStream.close();
cipherOut.close();
outStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Je vous recommande également de vérifier que les objets inStream, cipherOut et outStream sont bien initialisés avant de les fermer dans la clause finally. Vous pouvez par exemple les déclarer en dehors de la clause try, comme ceci :
FileInputStream inStream = null;
CipherOutputStream cipherOut = null;
FileOutputStream outStream = null;
try {
// Ouvrir le fichier à décrypter en lecture
inStream = new FileInputStream(filename);
// Ouvrir le fichier de sortie en écriture
outStream = new FileOutputStream(filename);
// Charger la clé en utilisant la chaîne de caractères spécifiée
String keyString = "3251510032515100";
byte[] key = keyString.getBytes();
SecretKeySpec secretKey = new SecretKeySpec(key, "AES");
// Initialiser le chiffreur en mode décryptage
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.DECRYPT_MODE, secretKey);
// Utiliser le chiffreur pour décrypter les données du fichier d'entrée et les écrire dans le fichier de sortie
cipherOut = new CipherOutputStream(outStream, cipher);
byte[] buffer = new byte[1024];
int numRead;
while ((numRead = inStream.read(buffer)) >= 0) {
cipherOut.write(buffer, 0, numRead);
}
} catch (Exception e) {
// Traiter l'exception si elle se produit
e.printStackTrace();
} finally {
// Fermer tous les flux de fichiers et les sessions de canal si nécessaire
try {
if (inStream != null) {
inStream.close();
}
if (cipherOut != null) {
cipherOut.close();
}
if (outStream != null) {
outStream.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
Je vous recommande également de vérifier que le fichier à décrypter existe bien et est accessible en lecture avant d'essayer de l'ouvrir en utilisant la méthode exists() de la classe File.
File file = new File(filename);
if (!file.exists() || !file.isFile()) {
throw new IOException("Le fichier " + filename + " n'existe pas ou n'est pas accessible en lecture");
}
// Ouvrir le fichier à décrypter en lecture
FileInputStream inStream = new FileInputStream(file);
J'espère que ça peut t'aider.
31 déc. 2022 à 14:55
10 mois après y'a aucune chance.
Exhumer des vieux sujets est contraire à la charte d'utilisation que tu as accepté de respecter pas plus tard qu'aujourd'hui.
De même que faire le travail des autres à leur place. Ce qu'il faut faire ici, c'est orienter, aiguiller, afin que le demandeur trouve lui-même.
Je te conseille donc de respecter un peu mieux la charte, car se faire remarquer dès son premier jour ne présage pas d'un avenir radieux au sein de la communauté.
31 déc. 2022 à 14:56
Dernier point, pour poster un code, il faut faire comme décrit là https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code