Я вижу две возможности:
Загрузить это самостоятельно: Когда файл полный ресурс зашифрован нужно обрабатывать загрузку этого самостоятельно. Поскольку Jar-файлы - это только почтовые пакеты, вы можете извлечь любой контент. Таким образом, вы можете читать и расшифровывать правильный файл свойств, а затем загружать его как ResourceBundle. Смотрите следующую LIB, чтобы получить доступ к банку ресурсов: https://github.com/IsNull/archimedesJ/blob/master/src/archimedesJ/util/PackageUtil.java И следующая стратегию, чтобы загрузить нужный файл: http://docs.oracle.com/javase/6/docs/api/java/util/ResourceBundle.html#getBundle(java.lang.String%2C%20java.util.Locale%2C%20java.lang.ClassLoader)
впрыснуть ResourceBundle Proxy: Если вы только шифровать значение свойств файла, вам может придерживаться ResourceBundle.getBundle (BUNDLE_NAME). Теперь он будет возвращать мусор, поскольку строки зашифрованы. Таким образом, вы просто обернуть ResourceBundle в пользовательский прокси для расшифровки значения: пример
Использование:
ResourceBundle mybundle = new EncryptedResourceBundle(ResourceBundle.getBundle(BUNDLE_NAME), "mypassword");
Вы определяете EncryptedResourceBundle как подкласс ResourceBundle и прокси все публичные методы и перенаправить их на основной оригинал. Переписать метод «GetString», а также, но теперь вы можете прозрачно расшифровать возвращаемое значение на лету:
public class EncryptedResourceBundle extends ResourceBundle
private final ResourceBundle original;
private final String password;
public EncryptedResourceBundle(ResourceBundle original, String password){
this.original = original;
this.password = password;
}
... // proxy all public methods here
@Overwrite
public String getString(String key){
String encrypted = original.getString(key);
return decrypt(encrypted, password);
}
private String decrypt(String data, String password){
...
}
}
Если безопасность важна, вы, вероятно, не хотите сохранить реальный пароль, но используя маркеры, полученное от оригинальный пароль.