Avevo già posto una domanda al riguardo, ma non mi è stata data risposta e non ho portato da nessuna parte.
Quindi ho chiarito alcuni dettagli sul problema e mi piacerebbe davvero sentire le tue idee su come potrei risolvere questo o cosa dovrei provare.
Ho Java 1.6.0.12 installato sul mio server Linux e il codice seguente funziona perfettamente.
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);
}
Oggi ho installato Java 1.6.0.26 sul mio utente del server e quando provo a eseguire la mia applicazione, ottengo la seguente eccezione. La mia ipotesi sarebbe che abbia qualcosa a che fare con la configurazione dell'installazione Java perché funziona nella prima, ma non nella versione successiva.
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 linea 25 è:
c.init(Cipher.DECRYPT_MODE, secretKeySpec);
Note:
* java.security nella directory java 1.6.0.12 del server corrisponde quasi completamente al file java.security 1.6.0.26 . Non ci sono provider aggiuntivi nel primo.
* La domanda precedente è qui .
Caused by: java.security.InvalidKeyException: Illegal key size
(senza "o parametri predefiniti") in Java 8