2016-10-12 3 views
2

Oracle JREで無制限のキー強度ポリシーJARを外部化しようとしています。私はIBM JREのソリューションを見つけることができましたが、Oracle JREのソリューションは見つけられませんでした。Oracle JREの無制限のキー強度ポリシーファイルの外部化

以下はIBMのソリューションです。

https://stackoverflow.com/questions/25158921/externalizing-us-export-policy-jar-and-local-policy-jar-from-jre/40000513#40000513

は本当にこのトピックに関するヘルプを感謝しています。

答えて

2

残念ながら、あなたが試みていることは、Oracleによって意図されていません。

private static void setupJurisdictionPolicies() throws Exception { 
    String javaHome = System.getProperty("java.home"); 
    String sep = File.separator; 
    String path = javaHome + sep + "lib" + sep + "security" + sep; 

    File localFile1 = new File(path, "US_export_policy.jar"); 
    File localFile2 = new File(path, "local_policy.jar"); 
    ... 

場所が一時的にシステムプロパティjava.homeを変更することであろう「微調整」する唯一の方法:OracleのJCEの1が、パスがハードコードされていることが確認できたJava 8のコードを見てみます。しかし、これは本当にハックです!

String javaHome = System.getProperty("java.home"); 
try { 
    System.setProperty("java.home", "C:\\Path_to_unrestricted_key_strength_policy_files"); 
    Class.forName("javax.crypto.JceSecurity"); 
} finally { 
    System.setProperty("java.home", javaHome); 
} 

C:\\Path_to_unrestricted_key_strength_policy_files\lib\securityにファイルを配置します。また、JRE lib\securityフォルダーにある他のファイルもコピーする必要があります。

クラスjavax.crypto.JceSecurityが初めてロードされたときにポリシーファイルがロードされるため、このコードは可能な限り早く実行する必要があります(他のスレッドは並行して実行しないでください)。

+0

ありがとうロバート。つまり、無制限の鍵強度を暗号化に使用するには、jre/lib/securityフォルダ内のデフォルトのポリシーjarファイルを上書きする必要があります。 – smallarv

+0

私の更新された回答を参照してください。しかし、これはハックであることに留意してください。 – Robert

関連する問題