Bonjour,
J'utilise des méthodes de cryptage et de décryptage qui me serve à crypter un message. Le seul problème est que je stocke le message crypté dans une base de données, mais lorsque je veux décrypter ce message cela ne fonctionne pas, je vous montre mes codes:
-méthode de cryptage et de décryptage
-la méthode qui affiche le message
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 public static byte[] encrypter(final String message, SecretKey cle) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, IllegalBlockSizeException, BadPaddingException { Cipher cipher = Cipher.getInstance("DESede");// getInstance() = Renvoyer une instance de l'objet pour un algorithme particulier dont l'implémentation est celle fournie par le fournisseur précisé cipher.init(Cipher.ENCRYPT_MODE, cle); //Initialiser la classe pour le mode de fonctionnement précisé (Cipher.ENCRYPT_MODE et Cipher.DECRYPT_MODE) byte[] donnees = message.getBytes(); // getBytes() = encode un jeu de caractères en une séquence d'octets return cipher.doFinal(donnees); //Ajouter la dernière partie des données à traiter et générer le résultat } public static String decrypter(final byte[] donnees, SecretKey cle) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, IllegalBlockSizeException, BadPaddingException { Cipher cipher = Cipher.getInstance("DESede"); cipher.init(Cipher.DECRYPT_MODE, cle); return new String(cipher.doFinal(donnees)); } public static SecretKey cleCrypt() { KeyGenerator keyGen; try { keyGen = KeyGenerator.getInstance("DESede"); keyGen.init(112); SecretKey cle = keyGen.generateKey(); return cle; } catch (Exception e) { e.printStackTrace(); return null; } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 public void affichageDossier(String nom, String prenom) throws InvalidKeyException, NoSuchAlgorithmException, NoSuchPaddingException, IllegalBlockSizeException, BadPaddingException { int id = recupIdSportif(nom, prenom); try { //Création d'un objet Statement Statement state = (Statement) Connexion().createStatement(); //L'objet ResultSet contient le résultat de la requête SQL ResultSet result = state.executeQuery( "SELECT nom, prenom, numero_v, date_v, info_visite "+ "FROM visite, sportif "+ "WHERE sportif.id = visite.id AND numero_v ="+ id +" "); //On récupère les MetaData ResultSetMetaData resultMeta = (ResultSetMetaData) result.getMetaData(); for(int i = 1; i <= resultMeta.getColumnCount(); i++) { System.out.println(resultMeta.getColumnName(i).toUpperCase()); } while(result.next()) { for(int i = 1; i <= resultMeta.getColumnCount()-1; i++) { System.out.println(result.getObject(i).toString()); } String textConsultEnc = result.getObject(resultMeta.getColumnCount()).toString(); System.out.println(textConsultEnc);// affiche [B@17a2457 byte[] textEnc = textConsultEnc.getBytes(); System.out.println(textEnc);// affiche [B@11d72ca System.out.println(decrypter(textEnc, cleCrypt())); } result.close(); state.close(); } catch(SQLException se) { //Handle errors for JDBC se.printStackTrace(); } }
Merci pour votre aide.
Partager