java.security.InvalidKeyException的异常故障

2021-11-25 17:27
29
0

鉴于出口限制问题,我们得到的JDK安全强度不够高,主要是密钥长度不够。

对于这一点,Sun在其官方网站上提供了Unlimited Strength Jurisdiction PolicyFiles,用于开放权限限制,在这里我们统称为“权限文件”。我们只需要将其部署在JRE环境中。如果你所在的国家或地区不受该进出口限制,就完全可以使用该文件解除权限限制问题。
例如在如下代码,经过变异执行后。在未受到限制的地区能正常输出256位长度的加密密文。

 

KeyGenerator kg=KeyGenerator.getInstance(KEY ALGORITHM);
    //AES要求密钥长度为128位、192位或256位 
    kg.init(256);
    //生成秘密密钥
    SecretKey secretKey=kg.generateKey(); 
    byte[] key=secretKey.getEncoded();

 

jdk中,出于某些因素,会被限制了AES加密后的密文长度。 此刻需要下载jce压缩包,并对应覆盖local_policy.jar和US_export_ policy.jar两个文件。如果在服务器上使用jre,在%JRE_Home%\lib\security目录下,也对应覆盖这两个文件。

 

全部评论