Bonjour
J'ai un petit problème dans une application qui charge des données dans un fichier (objet sérialisé) crypté à l'aide d'un SealedObject.
En effet, si certain champ de mon objet ainsi recréé sont bien décryptés, d'autre ne le sont pas, et je ne comprend pas pourquoi.
J'ai par exemple une HashMap contenant des identifiants à une BDD : le mot de passe est mal décrypté, voici ce que donne un affichage des données de ma HashMap (qui est un champ de mon objet sérialisé):
{mdp=[C@1dfc8a0, login=root, url=jdbc:mysql://localhost/test}
Le test étant effectué en local mdp devrait ne rien afficher comme valeur. Je ne comprend vraiment pas d'où ça vient d'autant que le reste des champs à l'air d'être bien décrypté.
Voici le bout de code concerné (entre autre) :
Stockage de l'objet :
Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Cipher c = Cipher.getInstance("Blowfish"); c.init(Cipher.ENCRYPT_MODE, sKey); so = new SealedObject(g,c);//g est une instance d'un objet Guilde //[...] FileOutputStream fos = new FileOutputStream(guilde); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(so); oos.flush(); oos.close();
Lecture de l'objet
Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 KeyStore ks = KeyStore.getInstance("JCEKS", "SunJCE"); FileInputStream fKey = new FileInputStream(".keystore"); ks.load(fKey, password); fKey.close(); Guilde myGuild = (Guilde) so.getObject(ks.getKey("xxx", password));
Merci d'avance pour votre aide !
Partager