一尘不染

Java安全性:密钥大小或默认参数非法?

java

我之前曾问过一个问题,但是没有得到正确的回答,也无济于事。

因此,我澄清了有关该问题的一些细节,我真的很想听听你关于如何解决此问题或应该尝试的想法。

我在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);


阅读 469

收藏
2020-02-28

共1个答案

一尘不染

你很可能现在没有安装无限强度文件。

你可能需要下载此文件:

Java密码术扩展(JCE)无限强度管辖权策略文件6

Java密码术扩展(JCE)无限强度管辖权策略文件7下载

Java密码术扩展(JCE)无限强度管辖权策略文件8下载(仅Java 8 u162之前的版本需要)

从zip中提取jar文件并将其保存在中${java.home}/jre/lib/security/

2020-02-28