Bonjour, je n'arrive pas à comprendre le fonctionnement du cryptage decryptage.
Voici mon code.

ECRITURE
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
 
String sql2 = "INSERT INTO membre (idmembre,email,pseudo,token,password,role, verification) VALUES (NULL, ?, ?, ?, ?, 'visiteur', '0')";
		 PreparedStatement statement2 = conn.prepareStatement(sql2);
		 statement2.setString(1, request.getParameter("email"));
		 statement2.setString(2, request.getParameter("pseudo"));
 
		 int Max = 1000000; int Min = 0;
		 Integer nbaleatoire = Min + (int)(Math.random() * ((Max - Min) + 1));
 
		 String token = nbaleatoire.toString();
 
		 statement2.setString(3, token);
 
 
		 String motpasse= request.getParameter("password");
		 String motpasse2= request.getParameter("password2");
 
		 if (!motpasse.equals(motpasse2))
		 {System.out.println("erreur");
		    response.sendRedirect("enregistrement.jsp?erreure=3");
 
		 }
		 else {
 
 
		  /*
		  * Cryptage
		  * 
		  */
 
		  TestCipherDESede Cryptage = new  TestCipherDESede();
		  final String message = motpasse;
 
		    KeyGenerator keyGen;
 
		      keyGen = KeyGenerator.getInstance("DESede");
		      keyGen.init(168);
		      SecretKey cle = keyGen.generateKey();
		      System.out.println("cle : " + new String(cle.getEncoded()));
 
		      byte[] enc = Cryptage.encrypter(message, cle);
		      System.out.println("texte encrypte : " + new String(enc));
 
 
 
		  /*
		   * fin cryptage
		   */
 
		    motpasse = new String(enc);
 
		    statement2.setString(4, motpasse);
 
			int rowsInserted = statement2.executeUpdate();
			if (rowsInserted > 0) {
			    System.out.println("A new user was inserted successfully!");
		    response.sendRedirect("index.jsp?erreure=2#formulaire");
			}
			else {
			    System.out.println("erreur");
		    response.sendRedirect("enregistrement.jsp?erreure=3");
			}
		 }
	}
	catch (Exception e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}

LECTURE
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
 
String sql = "SELECT email, idmembre, token, password , pseudo FROM membre WHERE email = ?";			 
			PreparedStatement statement = conn.prepareStatement(sql);
			statement.setString(1, request.getParameter("email"));
 
			System.out.println("requette email" + request.getParameter("email"));
 
			ResultSet rowsselected =  statement.executeQuery();
			statement.getResultSet();
			while (rowsselected.next())
			{
				System.out.println("REQUETTE select EFFECTUE");
				String email = rowsselected.getString("email");
				String motpasse = rowsselected.getString("password");
 
				String passwordCrypte = rowsselected.getString("password");
 
				/*
				 * debut cryptage
				 */
				TestCipherDESede Cryptage = new  TestCipherDESede();
				String message = passwordCrypte;
 
			    KeyGenerator keyGen;
			    try {
			      keyGen = KeyGenerator.getInstance("DESede");
			      keyGen.init(168);
			      SecretKey cle = keyGen.generateKey();
			      System.out.println("cle : " + new String(cle.getEncoded()));
 
			      byte[] enc = TestCipherDESede.encrypter(message, cle);
			      System.out.println("texte encrypte : " + new String(enc));
 
			      String dec = TestCipherDESede.decrypter(enc, cle);
			      System.out.println("texte decrypte : " + dec);
			      message = dec;
 
			    } catch (Exception e) {
			      e.printStackTrace();
			    }
 
			    /*
			     * fin cryptage
			     */
 
				if (motpasse.equals(message)) {
 
 
			      response.sendRedirect("index.jsp");
				}
 
			}
 
			    System.out.println("erreur");
			    response.sendRedirect("index2.jsp?erreure=1");
 
 
		} catch (Exception ex) {
		    ex.printStackTrace();
		}
 
 
	}
	}
Le cryptogramme

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
44
45
46
47
48
49
50
51
52
53
54
55
 
import java.security.InvalidKeyException;
	import java.security.NoSuchAlgorithmException;
 
	import javax.crypto.BadPaddingException;
	import javax.crypto.Cipher;
	import javax.crypto.IllegalBlockSizeException;
	import javax.crypto.KeyGenerator;
	import javax.crypto.NoSuchPaddingException;
	import javax.crypto.SecretKey;
 
	public class TestCipherDESede {
 
	  public static void main(String[] args) {
 
	    final String message = "Mon message a traiter";
 
	    KeyGenerator keyGen;
	    try {
	      keyGen = KeyGenerator.getInstance("DESede");
	      keyGen.init(168);
	      SecretKey cle = keyGen.generateKey();
	      System.out.println("cle : " + new String(cle.getEncoded()));
 
	      byte[] enc = encrypter(message, cle);
	      System.out.println("texte encrypte : " + new String(enc));
 
	      String dec = decrypter(enc, cle);
	      System.out.println("texte decrypte : " + dec);
 
	    } catch (Exception e) {
	      e.printStackTrace();
	    }
	  }
 
	  public static byte[] encrypter(final String message, SecretKey cle)
	      throws NoSuchAlgorithmException, NoSuchPaddingException,
	      InvalidKeyException, IllegalBlockSizeException, BadPaddingException {
	    Cipher cipher = Cipher.getInstance("DESede");
	    cipher.init(Cipher.ENCRYPT_MODE, cle);
	    byte[] donnees = message.getBytes();
 
	    return cipher.doFinal(donnees);
	  }
 
	  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));
	  }
 
	}