Problème d'encodage (et peut-être de chiffrement)
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:
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) :
Code:
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();
} |
Merci d'avance pour votre aide.