`

java jce加密算法密钥长度限制解决方案

 
阅读更多

前段时间测试,需要与银行交互,在交互过程中使用到了,X.509证书。

由于生产环境与开发环境证书不同,遂为了测试生产是否联通,使用生产证书链接银行。

银行方面提供的证书加密算法:Provider是org.bouncycastle.jce.provider.BouncyCastleProvider

 

 

在加载证书时 会报如下错误:

java.io.IOException: exception decrypting data - java.security.InvalidKeyException: Illegal key size

at org.bouncycastle.jce.provider.JDKPKCS12KeyStore.cryptData(Unknown Source)

at org.bouncycastle.jce.provider.JDKPKCS12KeyStore.engineLoad(Unknown Source)

at java.security.KeyStore.load(KeyStore.java:1185)

 



 

 

经Google、百度后分析为jdk的加密组件限制密钥长度。

 

使用jdk官网提供的扩展包覆盖系统中jdk的jce包即可解决此问题

 

 

本人为jdk1.6所以下载1.6的jce扩展包

下载地址为:

http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-java-plat-419418.html#jce_policy-1.5.0-oth-JPR

 

 

Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 6

Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 5.0

Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 1.4.2

Java Cryptography Extension (JCE) 1.2.2

Java Cryptography Extension (JCE) Documentation 1.2.2

 

 

将下载的jce包覆盖本地,本地路径为

%JAVA_HOME%\jre\lib\security我的为:D:\Program Files\Java\jdk1.6.0_30\jre\lib\security

 

 

local_policy.jar

US_export_policy.jar

 

 

重启服务后问题解决。

 

 

对比替换前后发现:后面的去掉了 长度限制

 


 

 

注:jdk 7+的jce unlimited Strength Jurisdiction Policy Files 需要在现行发布的版面上下载, 

http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html

jdk6一下的在这个地址下载

http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-java-plat-419418.html#jce_policy-1.5.0-oth-JPR

 

1.4、1.5、1.6各版本的jce无限制扩展包见附件:

 

 

 

参考地址:

 

http://www.oracle.com/technetwork/java/javase/downloads/index.html

 

http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-java-plat-419418.html#jce_policy-1.5.0-oth-JPR

 

http://http://www.bouncycastle.org/

 

http://87426628.blog.163.com/blog/static/606936182013104883902/

 

  • 大小: 111.8 KB
  • 大小: 40.9 KB
分享到:
评论

相关推荐

    解决低版本java解密加密的【key长度异常】

    这是因为这些低版本的Java实现不允许使用更强大的加密算法,这在当今的安全标准下是不足够的。 解决此问题的方法有以下几种: 1. **升级Java版本**:最直接的解决方式是升级到更高版本的Java运行环境,因为新版本...

    JDK8 对应 加密算法 jce_policy-8.zip包

    Java为了遵守不同国家的加密法规,对某些加密算法的密钥长度设定了限制,例如AES、RSA等。默认情况下,JDK只允许使用最大128位的密钥,如果尝试使用更长的密钥,就会抛出"InvalidKeySize"异常。这对于需要更高级别...

    加密算法工具类

    总的来说,这个"加密算法工具类"提供了一站式的解决方案,方便开发者在Java项目中快速集成和使用这些常见的加密算法,从而提升数据的安全性。然而,随着技术的发展,对于敏感数据的保护,建议使用更先进的加密标准,...

    jdk8解除aes加密限制.zip

    然而,在默认情况下,JDK 8对于AES的密钥长度存在一定的限制,这可能会导致在尝试使用超过默认限制的密钥大小时遇到“java.security.InvalidKeyException: illegal Key Size”错误。本压缩包文件"jdk8解除aes加密...

    很强的Java加密解密算法源码

    在IT行业中,加密和解密是信息安全领域的重要...综上所述,Java加密解密算法源码涵盖了多种安全机制,开发者可以基于这些源码进一步理解并定制自己的加密解决方案。通过深入学习和实践,可以有效提升应用程序的安全性。

    JAVA上加密算法的实现用例

    在Java中实现Diffie-Hellman密钥一致协议和DES等加密算法,需要JCE(Java Cryptography Extension)工具包的支持。用户可以从Sun Microsystems的官方网站下载JCE,并按照指南进行安装配置。具体步骤包括将JCE的库...

    jce_policy-8.zip

    在标准版本中,Java JCE 对某些加密算法(如AES)的密钥长度有所限制,特别是对于AES,其最大密钥长度默认为128位。这在某些需要更高安全性的场景下可能不够用。 标题"jce_policy-8.zip"中的"jce_policy-8"指的就是...

    DES加密算法JAVA实现

    通过使用Java语言实现DES加密算法,不仅可以帮助我们深入理解加密机制,还能为实际应用提供一种可行的解决方案。 #### 二、DES概述 DES最初是由IBM公司开发的Lucifer算法演变而来。1973年,美国国家标准局(NBS,...

    jce-policy-8.zip

    在Java 8之前,JCE有一个默认的限制,即对称加密算法(如AES)的最大密钥长度为128位,非对称加密算法(如RSA)的最大密钥长度为1024位。这些限制可能在某些场景下不足以满足安全性需求,特别是在需要高强度加密的...

    java.security.InvalidKeyException: Illegal key size 解决方案

    在Java编程中,`java.security.InvalidKeyException: Illegal key size` 是一个常见的错误,通常出现在加密或解密操作中,尤其是涉及到对称加密算法如AES(高级加密标准)时。这个错误表明您试图使用的密钥长度不受...

    加密解决方案

    加密过程通常涉及两个主要元素:密钥和加密算法。密钥用于解密加密后的数据,而算法则规定了如何使用密钥对数据进行编码和解码。 在Java中,加密功能主要由Java Cryptography Extension (JCE) 提供。JCE包含了一...

    解决illegal Key Size jdk7版本

    这个问题在 JDK 7 版本中尤为常见,因为默认配置的Java Cryptography Extension (JCE) 有对密钥长度的限制。在本文中,我们将深入探讨这一问题,并提供解决方案。 首先,我们需要理解Java的加密机制。Java JCE 提供...

    jce_policy-8

    描述中提到的解决方案是指当Java程序需要使用超过默认最大密钥长度(例如128位)进行加密操作时,需要更新JCE的策略文件。这两个jar文件——可能是“local_policy.jar”和“US_export_policy.jar”,需要被放置到...

    基于Java与Misty1算法的加密软件设计与代码实现

    本项目聚焦于“基于Java与Misty1算法的加密软件设计与代码实现”,这是一套结合了Java编程语言和Misty1加密算法的解决方案,旨在提供高效且安全的数据加密服务。 Misty1算法是一种非对称加密算法,由日本电气公司...

    JAVA 使用数字证书加密解密文件

    在IT领域,尤其是在网络安全和数据保护方面,加密技术扮演着至关重要的角色。本文将深入探讨如何使用...在实际工作中,我们还需要关注Java的加密限制,如默认的密钥长度限制,以及可能需要的JCE无限制强度策略文件。

    jce_policy-1_4_2.zip

    总结起来,"jce_policy-1_4_2.zip"文件对于ejbca用户是必不可少的,它包含了解除JCE加密强度限制的策略文件,使得ejbca能够支持更高级别的加密,以满足现代企业对数据安全的高标准。正确安装和配置这些文件是ejbca...

    JAVA加密解密

    描述中提到的“博文链接”指向了ITEYE博客上的一篇文章,虽然具体内容未提供,但我们可以推断文章可能涉及了Java加密解密的实际应用、代码示例以及可能遇到的问题和解决方案。 标签"源码"暗示我们可能会看到一些...

    基于JAVA的RSA文件加密软件的设计与实现.zip

    - 系统兼容性:确保JCE不受限制,因为Java默认的密钥长度限制可能不足以满足某些安全需求。 综上所述,基于Java的RSA文件加密软件设计与实现涉及RSA算法的理解、Java JCE库的运用、文件操作、密钥管理等多个方面。...

    AES加密时抛出java.security.InvalidKeyException: Illegal key size or default parameter

    Java默认的安全策略文件(位于`${java_home}/jre/lib/security`目录下)设置了密钥长度的上限,以符合出口管制的要求。因此,如果使用的是128位以上的密钥,则会出现上述异常。 2. **解决方案**: - **下载并安装...

    jce_policy-6

    这些政策通常涉及到加密算法的强度和密钥长度,不同的国家和地区可能有不同的法律法规,因此Oracle提供了可替换的JCE政策文件以适应这些规定。 "ejbca" 是Enterprise JavaBeans Certificate Authority的缩写,它是...

Global site tag (gtag.js) - Google Analytics