2016-10-12 2 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

불행히도 오라클이 의도 한 바가 아닙니다. 자바 8 오라클 JCE 하나의 코드를 보면 경로가 하드 코딩 된 것을 볼 수 있습니다

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을 수정하는 것 "조정할"할 수 있습니다. 그러나 이것은 정말로 해킹입니다!

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

고맙습니다. Robert. 따라서 암호화에 무제한 키 강도를 사용하려면 jre/lib/security 폴더의 기본 정책 jar 파일을 덮어 써야합니다. – smallarv

+0

업데이트 된 답변보기 그러나 이것이 해킹임을 명심하십시오. – Robert

관련 문제