Cryptage DES en UNICODE

neena Messages postés 46 Date d'inscription vendredi 9 janvier 2004 Statut Membre Dernière intervention 12 février 2007 - 9 mai 2005 à 10:37
coffeevince Messages postés 1 Date d'inscription jeudi 21 juillet 2005 Statut Membre Dernière intervention 19 octobre 2005 - 19 oct. 2005 à 10:27
Je vous explique mon gros probleme :

jai un prog qui crypte un mot de passe en DES (ça marche) mais le pb cest que les charactéres qu'il me renvoie je ne peux les mettre dans ma base de données!! Donc on ma demandé des les coder en UNICODE mais là ça marche pas du tout!!

voici mon code :

try {
KeyGenerator kg = KeyGenerator.getInstance("DES") ;
Key key = kg.generateKey();
Cipher cipher = Cipher.getInstance("DES") ;


byte[] passe = "coucou".getBytes() ;
System.out.println("Passe d'origine : " + new String(passe)) ;


//1)cryptage du passe
cipher.init(Cipher.ENCRYPT_MODE, key) ;
byte[] result = cipher.doFinal(passe) ;
passeCrypt = new String(result) ;
System.out.println("Passe crypté : " + passeCrypt) ;

//2)cryptage du DES
try{
for (int i = 0 ; i < passeCrypt.length() ; i++){
clef.add("" + result[i]) ;
}
System.out.println("clef : " + clef) ;


//faudra mettre unicodeDes dans la base!!
for (int k = 0 ; k < clef.size() ; k++){
unicodeDes += clef.get(k) + "/" ;
}
System.out.println("UnicodeDes : " + unicodeDes ) ; //j'ai des chiffres négatifs

J'ai vraiment besion d'aide.....merci d'avance

debutante un jour, confirmer pour toujours!!!

debutante un jour, confirmer pour toujours!!!

3 réponses

cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
9 mai 2005 à 15:07
Salut



Mets ta table en unicode, je sais pas ce que tu as comme SGBD ? c mieux pour la suite bien que cela prend plus de place !



Sinon utilise l'un des charsets dans le constructeur du String :

http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html#String(byte[],%20java.lang.String)



Charset |Description |
----
<tt>US-ASCII</tt>,
Seven-bit ASCII, a.k.a. <tt>ISO646-US</tt>,
a.k.a. the Basic Latin block of the Unicode character set,
----
<tt>ISO-8859-1 </tt>,
ISO Latin Alphabet No. 1, a.k.a. <tt>ISO-LATIN-1</tt>,
----
<tt>UTF-8</tt>,
Eight-bit UCS Transformation Format,
----
<tt>UTF-16BE</tt>,
Sixteen-bit UCS Transformation Format,
big-endian byte order,
----
<tt>UTF-16LE</tt>,
Sixteen-bit UCS Transformation Format,
little-endian byte order,
----
<tt>UTF-16</tt>,
Sixteen-bit UCS Transformation Format,
byte order identified by an optional byte-order mark




@+
0
neena Messages postés 46 Date d'inscription vendredi 9 janvier 2004 Statut Membre Dernière intervention 12 février 2007 2
9 mai 2005 à 16:31
Bah en faite on ma conseillé de prendre le tableau de Byte "result" et d'enregistré ses valeurs dans la BD (cest en Progress "cest la base de données je sais personne connait")!!
Mais je vais quand meme jetter un coup d'oeil à Charset...

merci bcp++

debutante un jour, confirmer pour toujours!!!
0
coffeevince Messages postés 1 Date d'inscription jeudi 21 juillet 2005 Statut Membre Dernière intervention 19 octobre 2005
19 oct. 2005 à 10:27
je sais pas si on tu as resolu ton probleme,mais il suffit de rajouter un byte de valeur 1 au début du message afin d'éviter que ce dernier ne se transforme pas en chiffre negatif.

et au moment du dechiffrage il fau tpenser a le retirer.

cordialement.
0
Rejoignez-nous