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
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;
		}
	}
-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
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.