AES算法256位密钥

最近,负责公司的数据加密模块。采用的算法是AES的CBC模式,密钥长度为256位。

想来,也没啥难的。Java的接口那么多,AES的算法接口也肯定有!想来没啥难的,但是却耗费了我两天时间才解决这个问题。

JDK和MyEclipse(包括Eclipse)自带的Jar包是不支持256位密钥长度的。如果初始化密钥的时候,长度设置为32字节(256位),就会抛出下面异常。

Illegal key size

在网上搜了很久,说JDK自带jar包不支持256位AES加密,需要到官网上下载下面两个jar包:

替换的jar包

很多网友说将JAVA_HOME/jre/lib/security下的这两个jar包替换掉;我试过了,但是还是报“Illegal key size”的错误。此外,很多网友也同样这样做了,还是不行。这个问题困扰了我两天。后来,我恍然大悟:我是在MyEclipse10下进行的代码编写,它自己导入了一些jar包(JRE System Libary)。我将jce.jar的路径拷贝下来,转入该路径——果然找到了security这个文件夹——果断,直接将那两个让人DT的jar包直接覆盖掉!!Ok!代码通过了!不过,若你导入的是jdk的jar包,就需要替换JAVA_HOME下的那两个文件。

Jdk6下载地址:

http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html

Jdk7下载地址:

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

AES算法256位密钥_第1张图片

以上,是我在进行AESCBC256位加密时遇到的问题,并找到的解决方法,在此与大家分享。希望,大家不要被这个没水平的问题给绊住开发的进程。

你可能感兴趣的:(Java)