Bonjour à tous,
J'essaie dans une appli J2EE de générer un mot de passe chiffré à partir d'un tableau de bytes, ce qui est demandé par la fonction digest() de MessageDigest. Or le tableau de bytes me sort invariablement le même genre de string : [B@34f65b5b
J'ai bien essayé de forcer l'encodage, d'en changer plusieurs fois, mais rien n'y fait.
Voici déjà une portion de mon code de test :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 try { String encodage = "UTF-16"; String s = "kkkk"; System.out.println(s + " / " +s.getBytes(encodage)); System.out.println(encodage); } catch (UnsupportedEncodingException ex) { Logger.getLogger(FormAddClient.class.getName()).log(Level.SEVERE, null, ex); }
Quant au chiffrement, là aussi ça ne fonctionne pas, puisqu'il me retourne le même genre de chaîne. Voici la partie qui concerne le chiffrement (ne vous attardez pas sur la génération du password, je générerai une clé aléatoire plus tard. D'ailleurs si quelqu'un a un lien pour faire ça rapidement et facilement je suis preneur) :
Merci d'avance pour votre aide.
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 //génération du login/password client.setLogin(client.getNom()+client.getPrenom()); Integer numberRandom = new Random().nextInt(); String password = client.getLogin().concat(numberRandom.toString()); try{ //on récupère un tableau de bytes pour hasher le login et générer un password //avec le login byte[] hashedPassword = MessageDigest.getInstance("SHA-1").digest(password.getBytes()); //client.setPassword(hashedPassword); System.out.println(password+ " / "+password.getBytes()+" / "+hashedPassword); } catch (MessagingException ex) { Logger.getLogger(FormAddClient.class.getName()).log(Level.SEVERE, null, ex); }catch(NoSuchAlgorithmException e){ e.getMessage(); }catch(Exception e2){ e2.getMessage(); }
Partager