К сожалению, вы не используете Oracle. Глядя на код Java 8 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
. Однако это действительно взломать!
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
загружен в первый раз.
Большое спасибо Роберту. Таким образом, это означает, что мы должны перезаписать файлы jar политики по умолчанию в папке jre/lib/security, чтобы использовать неограниченную силу ключа для шифрования. – smallarv
См. Мой обновленный ответ. Однако имейте в виду, что это взломать. – Robert