相关疑难解决方法(0)

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);
}
Run Code Online (Sandbox Code Playgroud)

今天我在我的服务器用户上安装了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
Run Code Online (Sandbox Code Playgroud)

第25行是: c.init(Cipher.DECRYPT_MODE, secretKeySpec);

注意:
*服务器的1.6.0.12 …

java

394
推荐指数
10
解决办法
39万
查看次数

java aes 256 java.security.InvalidKeyException:安装策略后非法密钥大小

我用AES 256密钥加密字节有问题.我已经安装了这个政策.这就是我所做的:

  1. 下载文件:http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html
  2. 我将文件local_policy和US_export_policy移动到目录/Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/jre/lib/security
  3. 我重启mac

但我仍然收到以下代码的错误消息:

KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
keyGenerator.init(256);
SecretKey secretKey = keyGenerator.generateKey();
Cipher decryption = Cipher.getInstance("AES/CBC/PKCS5PADDING");
decryption.init(Cipher.DECRYPT_MODE, secretKey, 
new IvParameterSpec(secretKey.getEncoded())); // <-- Illegal key size
Run Code Online (Sandbox Code Playgroud)

我的Java版本:

java version "1.7.0_40"
Java(TM) SE Runtime Environment (build 1.7.0_40-b43)
Java HotSpot(TM) 64-Bit Server VM (build 24.0-b56, mixed mode)
Run Code Online (Sandbox Code Playgroud)

我需要做什么,使用256 AES加密?

java encryption aes sha256

9
推荐指数
1
解决办法
3万
查看次数

标签 统计

java ×2

aes ×1

encryption ×1

sha256 ×1