J'avais posé une question à ce sujet plus tôt, mais cela n'a pas été répondu correctement et n'a mené nulle part.
J'ai donc clarifié quelques détails sur le problème et j'aimerais vraiment entendre vos idées sur la façon de résoudre ce problème ou que dois-je essayer.
J'ai Java 1.6.0.12 installé sur mon serveur Linux et le code ci-dessous 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 utilisateur de serveur et lorsque j'essaie d'exécuter mon application, j'obtiens l'exception suivante. Je suppose que cela a quelque chose à voir avec la configuration d'installation de Java car cela fonctionne 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 25 est:
c.init(Cipher.DECRYPT_MODE, secretKeySpec);
Remarques:
* java.security sur le répertoire java 1.6.0.12 du serveur correspond presque complètement au fichier java.security 1.6.0.26. Il n'y a pas de fournisseurs supplémentaires dans le premier.
* La question précédente est ici .
Caused by: java.security.InvalidKeyException: Illegal key size
(sans les "ou paramètres par défaut") dans Java 8