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.
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
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; } }
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.
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"); }
L'erreur est un "NullPointer" à la ligne :"is.read(encodedPassword);"
Voilà, merci d'avance
Partager