Bonjour;
j'ai mis en place un programme qui me permet de crypter mes données d'une de ma base dans mysql.j'utilise l'api jasypt.
Mon programme de cryptage est le suivant:
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
 
	public void EncyptColumn(String host, String port, String baseD, String tableName, 
							String columnName,String idTable,String pwd, String algo,String user,String pwdUser) {
	        StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
	        HibernatePBEEncryptorRegistry registry = HibernatePBEEncryptorRegistry.getInstance();
	        encryptor.setPassword(pwd);
	        encryptor.setAlgorithm(algo);
	        registry.registerPBEStringEncryptor("strongHibernateEncryptor", encryptor);
 
	       logger.info("Execution de la methode EncryptColumn(host="+host+" port= "+port+" baseD= "+baseD+" TableName= "+tableName
	        		+"TableIdName"+idTable+"ColumnName="+columnName+" pwd= "+pwd+" algo="+algo+"user="+user+" pwdUser="+pwdUser);
	        try {
		        	//Déclaration du driver :
		        	Class.forName("com.mysql.jdbc.Driver");
		        	//Url de connexion
		        	String dbUrl="jdbc:mysql://"+host+":"+port+"/"+baseD;
		        	//connexion à la base
		        	Connection dbcon = DriverManager.getConnection(dbUrl,user,pwdUser);
		        	Statement statement1 = dbcon.createStatement();
		        	String reqSQL = "select "+ idTable + ","+ columnName +" from "+ tableName;
		        	ResultSet result = statement1.executeQuery( reqSQL );	
		        	while(result.next()){
		        		result.getString(columnName);
		        		System.out.println("Debut");
		        		logger.info("Crypatge de la requete");
		         		PreparedStatement statement2 = dbcon.prepareStatement("update " + tableName + " set " + columnName + " = ? where  "+ idTable +" = ?");
		               	statement2.setString(1, encryptor.decrypt(result.getString(columnName)));
		                statement2.setInt(2, result.getInt(idTable));
		                statement2.execute();
		                logger.info(" resultat crypatge/decryptage de la requete "+statement2.execute());
		                statement2.close();
		                System.out.println("Fin");
		            }	        	
	        	}catch( ClassNotFoundException e ){
	        			logger.error(e.getMessage());
		        }catch( SQLException e ){
	        			logger.error(e.getMessage());
	        	}
 
	}
Ensuite, je suis allé dans application et j'ai ajouté dans le fichier hbm.xml de la table concernée cette configuration comme indiqué dans ce lien http://www.jasypt.org/hibernate3.html.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
<typedef name="encrypted" class="org.jasypt.hibernate.type.EncryptedStringType">
      <param name="encryptorRegisteredName">strongHibernateEncryptor</param>
    </typedef>
c'est la seule modification que j'ai faite dans mon application. Je me demande si cela suffit et que j'ai pas sauté des étapes.

mon probleme est que une fois les données cryptées,lorsque que je les consulte via l'application elle sont affichées cryptées.j'aimerais les avoir decryptées.

Merci