Salut à tous,
J'ai un problème avec une méthode readObject : mon programme génère un object KeyPair, l'écrit dans un fichier avec la méthode writeObject de ObjectOutputStream, puis je crypte ce fichier avec l'algorithme Password Based Encryption. Plus tard, je veux réutiliser cet object KeyPair alors je décrypte le fichier, sauvegarde dans un autre fichier le contenu obtenu et utilise la méthode readObject sur ce dernier fichier générer. Et là il y a une StreamCorruptedException avec comme message : invalide type code 00. Je pense qu'il me décrypte mal mon fichier, voiçi le code pour générer l'object Cipher :
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
public static Cipher getPBECipher(int mode) throws Exception {
		PBEKeySpec keySpec = new PBEKeySpec(
				"mysecretsentence".toCharArray());
		SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("PBEWithMD5AndDES", "SunJCE");
 
		MessageDigest md = MessageDigest.getInstance("MD5");
		md.update("mysecretsentence".getBytes());
 
		byte[] digest = md.digest();
		byte[] salt = new byte[8];
 
		for(int i = 0; i < 8; i++) {
			salt[i] = digest[i];
		}
 
		Cipher cipher = Cipher.getInstance("PBEWithMD5AndDES");
		cipher.init(mode, keyFactory.generateSecret(keySpec),
				new PBEParameterSpec(salt, 20));
 
		return cipher;		
	}
Pourtant, à la lecture en mode texte, même si c'est pas une référence, les 2 fichiers ont l'air d'être identique.
Merci.