J'avais posé une question à ce sujet plus tôt, mais il n'a pas répondu à droite et conduit nulle part. J'ai donc précisé quelques détails sur le problème et j'aimerais vraiment entendre vos idées sur comment je pourrais résoudre ce problème ou ce que je devrais essayer.
J'ai Java 1.6.0.12 installé sur mon serveur Linux et le code soufflet fonctionne parfaitement.
String key = "av45k1pfb024xa3bl359vsb4esortvks74sksr5oy4s5serondry84jsrryuhsr5ys49y5seri5shrdliheuirdygliurguiy5ru";
try {
Cipher c = Cipher.getInstance("ARCFOUR");
SecretKeySpec secretKeySpec = new SecretKeySpec(key.getBytes("UTF-8"), "ARCFOUR");
c.init(Cipher.DECRYPT_MODE, secretKeySpec);
return new String(c.doFinal(Hex.decodeHex(data.toCharArray())), "UTF-8");
} catch (InvalidKeyException e) {
throw new CryptoException(e);
}
Aujourd'hui j'ai installé Java 1.6.0.26 sur mon serveur et quand j'essaie de lancer mon application, j'obtiens l'exception suivante. J'imagine que ça a quelque chose à voir avec le Java de configuration de l'installation, car il travaille dans la première, mais ne fonctionne pas dans la version ultérieure..
Caused by: java.security.InvalidKeyException: Illegal key size or default parameters
at javax.crypto.Cipher.a(DashoA13*..) ~[na:1.6]
at javax.crypto.Cipher.a(DashoA13*..) ~[na:1.6]
at javax.crypto.Cipher.a(DashoA13*..) ~[na:1.6]
at javax.crypto.Cipher.init(DashoA13*..) ~[na:1.6]
at javax.crypto.Cipher.init(DashoA13*..) ~[na:1.6]
at my.package.Something.decode(RC4Decoder.java:25) ~[my.package.jar:na]
... 5 common frames omitted
La ligne 25est:
c.init(Cipher.DECRYPT_MODE, secretKeySpec);
Notes:
* java.de sécurité sur le serveur de 1.6.0.12 java répertoire match presque complètement avec la 1.6.0.26 java.fichier de sécurité. Il n'y a pas des fournisseurs supplémentaires dans le premier.
* la question précédente est ici.