2013-07-03 57 views
1

我正在尝试过滤可用于系统的可用加密算法以进行某些测试,但遇到了问题。无法将CryptoPermission添加到java.policy文件

在local_policy.jar文件中,它包含default_local.policy文件中的各种条目,例如,

permission javax.crypto.CryptoPermission "DES", 64; 

我试图通过传递使用自定义策略文件:

-Djava.security.manager -Djava.security.policy=F:/myfile.policy 

这个工程到一个点,但收到一个错误:

java.security.policy: error parsing file:/F:/myfile.policy: 
line 65: expected [;], found [64] 

出于某种原因,它赢得'不读取引号之外的任何内容“”,但这是根据local_policy.jar文件中的内容进行的。该政策文件的内容如下:

grant { 
    permission javax.crypto.CryptoPermission "DES", 64; <--- line #65 
    permission javax.crypto.CryptoPermission "DESede", *; 
    permission javax.crypto.CryptoPermission "RC4", 128; 
    permission javax.crypto.CryptoPermission "RSA", *; 
    permission javax.crypto.CryptoPermission *, 128; 
}; 

我也曾尝试使用政策工具(policytool.exe在JDK/bin文件夹),但我得到:

java.lang.NoSuchMethodException: javax.crypto.CryptoPermission.<init> 
(java.lang.String, java.lang.String) 

任何想法?

谢谢。

+0

我已更新原始文章,内容为政策文件 – user2028936

+0

哪一行是第65行?在您的文件示例中添加一个<---第#65行。 –

回答

1

javax.crypto.CryptoPermissions没有权限与安全管理器一起使用,但适用于java加密扩展(JCE)。也就是说,他们进入一个单独的策略文件(或多或少与安全管理器的策略文件共享格式)。您会在这里找到更多的信息,JCE:http://docs.oracle.com/javase/1.5.0/docs/guide/security/jce/JCERefGuide.html

如果我没有记错的话(这很可能是这里的情况)的JCE策略文件需要通过在JRE/JDK安装交换文件进行安装(见一些信息在这里:Java Security: Illegal key size or default parameters?)。据我所知,这个策略文件不能通过VM参数简单地指定。

相关问题