Bonjour,
je patine : En gros :
>je créer un fichier texte dans lequel je stock une valeur crypté.
>Plus tard je lis une valeur crypté aussi de la même manière et je veux comparer ces deux valeurs.
Dans certains cas lorsque je génère une valeur crypté dans le fichier texte qui demande alors de l'enregistrer en UFT8 que j'accepte ou que je refuse ça m’empêche de comparer mes valeurs.
Ou plutôt les valeurs dans un system.out.println(); sont bien les même mais un equal ou un compare me dit que ces valeurs sont différentes....
un exemple de texte problématique :
Æ6óÊ)÷ßžª‰?‡³·[ñ¸ã
Dans ce cas le ? a été transformé car j'ai refusé de le laisser en UTF8 mais même si j'ai bien un point d’interrogation dans les deux chaines ça ne marche pas.
Si dessous mes bout de codes :
a vu des recherches que j'ai fait je penses que le problème vient du format de comparaison des chaines de caractère.
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 //pour faire la comparaison if (ligne.toString().equals((seclicence.cryptervalue("password",mac()).toString()))) //le code pour faire le cryptage public String cryptervalue(String password, String entree) { private String algo = "Blowfish"; byte[] texteCrypte = null; String strtexteCrypte = null; try { byte[] passwordInBytes = password.getBytes("ISO-8859-2"); Key clef = new SecretKeySpec(passwordInBytes, algo); Cipher cipher = Cipher.getInstance(algo); cipher.init(Cipher.ENCRYPT_MODE, clef); byte[] texteClaire = entree.getBytes(); texteCrypte = cipher.doFinal(texteClaire); strtexteCrypte = new String(texteCrypte); } catch (Exception e) { System.out.println("Erreur lors de l'encryptage des donnees"); } return strtexteCrypte; }
j'ai essayer de les unifier en les passant en byte[] avec un code de ce genre là mais sans succès.
Je suis preneur de votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 byte[] test = test2.getBytes("UTF8");
Merci à tous
Partager