版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
由于国外的进出口限制,对Java密码算法体系进行了一些限制,为了解除限制,需要覆盖策略文件。
(1)下载策略文件
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
jdk8→http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
下载的策略文件中需要两个文件:local_policy.jar和US_export_policy.jar
(2)覆盖 sdk 和 jre 中的这两个策略文件
sdk 中策略文件位置→C:\Program Files\Java\jdk1.8.0_144\jre\lib\security
jre 中策略文件位置→C:\Program Files\Java\jre1.8.0_144\lib\security
(四)测试
策略文件是否生效,可以使用下面的程序检验:
AES 算法没有解除限制之前,AES 算法只支持128位。
public static void main(String[] args) {
try {
KeyGenerator kg = KeyGenerator.getInstance("AES");
kg.init(256);
SecretKey secretKey=kg.generateKey(); System.out.println(secretKey.getFormat());
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}}