Probleme de comprehension avec l'API Cryptix (maj : resolu) [Java] - Java - Programmation
Marsh Posté le 20-08-2002 à 16:49:14
c'est un peu court jeune homme
c'est quoi cryptix d'abord?
Marsh Posté le 20-08-2002 à 16:57:21
justement l'avantage c de trouver quelqu'un qui l'a utilisé mais si ça t'interresse c une implementation des API de cryto Java et qui implémente RSA, MD5, SHA, AES (avec Rijndael).
Sinon ---> http://www.cryptix.org
Marsh Posté le 20-08-2002 à 16:57:42
GWaRm a écrit a écrit : justement l'avantage c de trouver quelqu'un qui l'a utilisé mais si ça t'interresse c une implementation des API de cryto Java et qui implémente RSA, MD5, SHA, AES (avec Rijndael). Sinon ---> http://www.cryptix.org |
vi ça m'interesse, justement
merci
Marsh Posté le 20-08-2002 à 17:00:09
L'essentiel que j'ai oublié de dire est que je veux faire de la serialisation en utilisant le chiffrement AES.
Pour le stockage c bon mais c a la lecture que g des problemes.
Voilà le code que j'ai fait:
Code :
|
Marsh Posté le 20-08-2002 à 17:18:09
ca c'est du throws !
Marsh Posté le 20-08-2002 à 17:23:18
c juste un prog à part pour comprendre et après programmer le prog final.
Sinon mon problème c ça :
|
c qu'il s'arrete au 'h' et il ne me renvoie pas la suite
je pense qu'il ne me renvoie pas le dernier bloc car il a été complété par des caractere de bourrage (padding en anglais).
Si je mets la String "Je fais de la cryptograph" ça passe nickel.
Marsh Posté le 20-08-2002 à 17:43:55
pkoi tu ne fermes jamais tes fichiers ?
ca ne va surement pas régler ton problème mais ce sera déjà plus propre ...
ensuite, à quoi sert cette boucle :
System.out.println("long fichier "+alire); |
tu commences déjà à vider ton inputStream .... je vois pas l'intérêt ...
en plus tu fais une 2e boucle quasiment identique apres ... enfin, je vois pas trop l'intérêt ...
sinon désolé, je connais pas l'API
Marsh Posté le 20-08-2002 à 18:15:02
g fait quelques modifs d'ailleurs sur le vidage de l'InputStream
Code :
|
mais l'éxecution est tjs la même
Marsh Posté le 20-08-2002 à 19:10:53
pkoi tu ne fais pas simplement ca :
Code :
|
Marsh Posté le 20-08-2002 à 19:27:32
je dirais même plus :
Code :
|
Marsh Posté le 20-08-2002 à 20:03:44
je suis en train de faire quelques test, et je pense que l'erreur ne vient pas du déchifrage mais du chiffrage : si tu fais un close tu te manges une xjava.security.IllegalBlockSizeException
Marsh Posté le 20-08-2002 à 20:10:06
GWaRm a écrit a écrit : justement l'avantage c de trouver quelqu'un qui l'a utilisé mais si ça t'interresse c une implementation des API de cryto Java et qui implémente RSA, MD5, SHA, AES (avec Rijndael). Sinon ---> http://www.cryptix.org |
Note à ts les programmeurs: le verbe "implanter" existe mais pas le verbe "implémenter" (qui est la version franciser du verbe anglais "to implement" ). Je me faisais avoir moi aussi jusqu'à ce qu'on m'en fasse la remarque...
Marsh Posté le 20-08-2002 à 20:17:53
j'ai essayé ton truc et je bloc. j'ai viré d=deux trois trucs qui me semblait inutile.
Pour moi, le problème vient du chiffrement qui ne se termine pas bien. La doc dit bien qu'il faut appeler le close de façon à ce que le padding se fasse en remplissant le dernier bloc, mais visiblement ca plante. Bizarre ...
Tu ne te rendait compte du problème qu'au déchifrement car tu ne fermait pas le stream ...
voici mon code :
Code :
|
Marsh Posté le 20-08-2002 à 20:19:35
Lancelot** a écrit a écrit : Note à ts les programmeurs: le verbe "implanter" existe mais pas le verbe "implémenter" (qui est la version franciser du verbe anglais "to implement" ). Je me faisais avoir moi aussi jusqu'à ce qu'on m'en fasse la remarque... |
ben oui mais implanter ca veut pas dire du tout la même chose.
donc, même s'il existe pas, moi je l'utilise !
Marsh Posté le 20-08-2002 à 20:19:49
Lancelot** a écrit a écrit : Note à ts les programmeurs: le verbe "implanter" existe mais pas le verbe "implémenter" (qui est la version franciser du verbe anglais "to implement" ). Je me faisais avoir moi aussi jusqu'à ce qu'on m'en fasse la remarque... |
le jour ou qqun me sort qu'il à passé sa journée à faire des implants, je me poserai de solides questions sur le boulot qu'il fait !
Marsh Posté le 20-08-2002 à 20:21:04
--greg-- a écrit a écrit : le jour ou qqun me sort qu'il à passé sa journée à faire des implants, je me poserai de solides questions sur le boulot qu'il fait ! |
Marsh Posté le 21-08-2002 à 11:13:54
--greg-- a écrit a écrit : le jour ou qqun me sort qu'il à passé sa journée à faire des implants, je me poserai de solides questions sur le boulot qu'il fait ! |
c clair
Marsh Posté le 21-08-2002 à 11:15:26
Lancelot** a écrit a écrit : Note à ts les programmeurs: le verbe "implanter" existe mais pas le verbe "implémenter" (qui est la version franciser du verbe anglais "to implement" ). Je me faisais avoir moi aussi jusqu'à ce qu'on m'en fasse la remarque... |
je ne saurais vous répondre que par www.granddictionnaire.com avec recherche du mot implémenter et tout le monde sera d'accord du moins j'espere
Marsh Posté le 21-08-2002 à 11:21:50
benou a écrit a écrit : j'ai essayé ton truc et je bloc. j'ai viré d=deux trois trucs qui me semblait inutile. Pour moi, le problème vient du chiffrement qui ne se termine pas bien. La doc dit bien qu'il faut appeler le close de façon à ce que le padding se fasse en remplissant le dernier bloc, mais visiblement ca plante. Bizarre ... Tu ne te rendait compte du problème qu'au déchifrement car tu ne fermait pas le stream ... |
justement g suivi un peu ce que tu disais et j'en suis arrivé au même point que toi sauf que là il faut que je fasse ça :
Code :
|
et dans la doc c comme ça :
|
et que je je trouve le fameux "International JCE Standard Algorithm Names" qui n'existe pas dans la javadoc cryptix mais je cherche ....
Marsh Posté le 21-08-2002 à 11:24:49
--greg-- a écrit a écrit : pas terrible leur définition mais bref, pas de polémique |
c bizarre leur 2 eme definition, ça semblerait donner raison à Lancelot
Marsh Posté le 21-08-2002 à 12:06:24
Ah il suffisait de chercher un petit peu..
Voilà le code :
Code :
|
Il suffisait de spécifier un algo de Padding correct en tout de trouver quels algos faisaient du padding.
En tout je percois bien là la puissance de Java.
Voilà et puis merci
Marsh Posté le 22-08-2002 à 11:19:26
G un autre problème sur le principe de stockage des clés avec la classe KeyStore de l'API Java Standard.
Voici le code :
Code :
|
et à l'éxecution j'ai :
java -cp .:../cryptix/cryptix32.jar GenKey essaicle 11:10 |
Le fichier existe bien car le "new File(fichierCle)" le créé.
En plus je ne sais pas quel est le pointeur qui est null.
Merci
Marsh Posté le 22-08-2002 à 12:36:31
Problème résolu:
Il suffisait d'aller sur le forum de Sun.
en fait il faut remplacer
KeyStore storekey = KeyStore.getInstance("JKS","SUN" ); |
qui ne gère que les clés asymétriques, par
KeyStore storekey = KeyStore.getInstance("JCEKS" ); |
qui apporte la gestion des clés symétriques JCEKS provient du SunJCE 1.2
--> http://forum.java.sun.com/thread.j [...] read=14467
Marsh Posté le 22-08-2002 à 12:42:09
--greg-- a écrit a écrit : |
merci pour tes félicitations quoique je sente une pointe d'ironie non ??
Marsh Posté le 22-08-2002 à 12:47:03
GWaRm a écrit a écrit : merci pour tes félicitations quoique je sente une pointe d'ironie non ?? |
non non jconnais pas le bon smiley, je voulais juste dire bravo et que c sympa d'avoir passé la soluce...
Marsh Posté le 29-08-2002 à 12:15:39
g un autre problème !!
je veux utiliser un KeyStore (API Standard, java.security.KeyStore) et qd je lance un setKeyEntry(String alias, Key key, char[] password, Certificate[] chain) avec chaque caractere, issus d'une fonction de hachage, de password compris entre 1 et 248 (pour un mot de passe particulier) et il me renvoie KeystoreException : Password is not ASCII
L'ASCII n'est il pas compris entre 0 et 255
Marsh Posté le 29-08-2002 à 14:17:15
met un mot dez pass en dur pour voir si ca règle le problème ...
Marsh Posté le 29-08-2002 à 14:30:13
benou a écrit a écrit : met un mot dez pass en dur pour voir si ca règle le problème ... |
ouais mais le problème c que le hachage par SHA-1 fait tomber dans des caracrtères non imprimables ou du genre "retour arriere", "return" bref un peu n'importe quoi comme code ASCII. Est ce que ça voudrait que setKeyEntry n'accepte que des caractères imprimables ??
Je vais faire le test avec "\n", "\t" et autres et je vous dirais
Marsh Posté le 29-08-2002 à 14:35:39
J'ai essayé avec GenKey (cf plus haut) et j'ai utilisé le mot de passe
Code :
|
et là il me jette l'exception KeyStoreException: Password is not ASCII, il faudrait qu'il précise (quand on l'utilise pour la première fois), KeyStoreException: Password is not printable ASCII.
vala
Marsh Posté le 29-08-2002 à 18:29:35
Problème résolu il suffit de faire :
Code :
|
et encore un problème résolu !
PS : je me fais mes réponses tout seul même pas besoin d'aide
Marsh Posté le 20-08-2002 à 16:42:52
J'ai un petit problème de compréhension sur la serialisation mais
surtout sur la récupération d'un objet, je crois que c le padding qui me pose problème. Si quelqu'un peut m'aider ou s'il veut des précisions y a pas de prob.
Merci
Message édité par Gwarm le 02-09-2002 à 12:00:51