2013-07-03 53 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參數簡單地指定。

相關問題