Saya telah mengajukan pertanyaan tentang ini sebelumnya, tetapi itu tidak dijawab dengan benar dan tidak mengarah ke mana pun.
Jadi saya telah mengklarifikasi beberapa detail tentang masalah ini dan saya sangat ingin mendengar ide Anda tentang bagaimana saya bisa memperbaiki ini atau apa yang harus saya coba.
Saya telah menginstal Java 1.6.0.12 di server Linux saya dan kode di bawah ini berjalan dengan sempurna.
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);
}
Hari ini saya menginstal Java 1.6.0.26 pada pengguna server saya dan ketika saya mencoba menjalankan aplikasi saya, saya mendapatkan pengecualian berikut. Dugaan saya ada hubungannya dengan konfigurasi instalasi Java karena ia bekerja di yang pertama, tetapi tidak berfungsi di versi yang lebih baru.
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
Jalur 25 adalah:
c.init(Cipher.DECRYPT_MODE, secretKeySpec);
Catatan:
* java.security pada direktori java 1.6.0.12 server hampir sepenuhnya cocok dengan file java.security 1.6.0.26 . Tidak ada penyedia tambahan di yang pertama.
* Pertanyaan sebelumnya ada di sini .
Caused by: java.security.InvalidKeyException: Illegal key size(tanpa "atau parameter default") di Java 8