Bonjour,

J'essaie de faire fonctionner un petit truc:

Etape 1 :insertion du mdp crypté dans un fichier nommé mail.bin
Etape 2 :à l'ouverture d'une frame, un JOptionPane apparait pour demander le mdp
Etape 3 :vérification du mdp et ouverture de la frame

L'étape 1 et 2 fonctionnent mais pas l'étape 3

La classe qui contient les méthode permettant de crypter/comparer.
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
 
class Passwd {
 
 
 
	String fileName;
	byte[] encodedPassword;
	boolean bool =false;
 
	public Passwd(String nom){
 
  		fileName = nom+".bin";
 
	}
 
 
	public boolean verifyPassword(String clair) {
    	     try {
	      	     MessageDigest messageDigest = MessageDigest.getInstance("MD5");
	      	     byte[] p = messageDigest.digest(clair.getBytes()); 
	      	     messageDigest.isEqual(p, encodedPassword);
	      	     bool=true;
    	     }
    	     catch (Exception exc) {
      		     exc.printStackTrace();
      		     bool= false;
    	     }
    	     return bool;
  	}
 
	public void setPassword(String clair) {
    	     try {
      		     MessageDigest messageDigest = MessageDigest.getInstance("MD5");
      		     encodedPassword = messageDigest.digest(clair.getBytes()); 
    	     }
    	     catch (Exception exc) {
      		     exc.printStackTrace();
    	     }    
  	}
 
        public byte[] load() {
    	     try {
			FileInputStream is = new FileInputStream(fileName);
    	  	is.read(encodedPassword);
   	   		is.close();
   	   		System.out.println("dans load, fil="+fileName);
 
    	     }
 
    	     catch(FileNotFoundException notf){
    		     encodedPassword = null;
      		     System.out.println("dans load exc, fil="+fileName);
    	     }
    	     catch(IOException ioexc){
 
    	     }
 
 
    	return encodedPassword;
  	}
 
}
La classe qui instancie:
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
 
 
Passwd pwd = new Passwd("mail");
pwd.load();
 
 
 
if(f.exists()==false){
 
	JOptionPane d = new JOptionPane();
 
	retour = d.showInputDialog(envoi_mail_IH.this,"Veuiilez entrer\n le mot de passe de messagerie","Mot de passe",JOptionPane.QUESTION_MESSAGE);
	System.out.println("mdp tapé :"+retour);
 
 
	if(pwd.verifyPassword(retour)==true)
		System.out.println("bon");
	else
		System.out.println("mauvais");
 
 
 
 
}
Donc là le mdp est déjà stocké dans mail.bin, ce code permet juste "normalement" de vérifier si le code tapé est bien le même que dans le fichier bin.

L'erreur est un "NullPointer" à la ligne :"is.read(encodedPassword);"

Voilà, merci d'avance