Я задавав питання про це раніше, але на це не відповів правильно і нікуди не привів.
Тож я уточнив декілька деталей проблеми і дуже хотів би почути ваші ідеї щодо того, як я можу це виправити чи що мені слід спробувати.
У мене на моєму сервері Linux встановлений Java 1.6.0.12, і код нижче працює просто чудово.
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);
}
Сьогодні я встановив Java 1.6.0.26 на свого сервера, і коли я намагаюся запустити свою програму, я отримую наступне виняток. Я думаю, що це має щось спільне з конфігурацією установки Java, оскільки вона працює в першій, але не працює в більш пізній версії.
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
Рядок 25 :
c.init(Cipher.DECRYPT_MODE, secretKeySpec);
Примітки:
* java.security у сервері java-каталогу 1.6.0.12 майже повністю відповідає файлу java.security 1.6.0.26. У першого немає додаткових провайдерів.
* Попереднє запитання тут .
Caused by: java.security.InvalidKeyException: Illegal key size(без "або параметрів за замовчуванням") у Java 8