Problem:
Bereitstellung von Anwendungen, die eine 256-Bit-AES-Verschlüsselung verwenden, was nicht der Fall ist Wird zunächst von Java unterstützt und erfordert die Installation von „Unlimited Strength“-JCE-Richtliniendateien. Dies stellt die Endbenutzerverteilung vor Herausforderungen.
Java Reflection-Angebote ein einzigartiger Ansatz zur Umgehung dieser Einschränkungen:
public static void removeCryptographyRestrictions() { // Use reflection to modify private JCE Security classes: Class<?> jceSecurity = Class.forName("javax.crypto.JceSecurity"); Field isRestrictedField = jceSecurity.getDeclaredField("isRestricted"); isRestrictedField.setAccessible(true); isRestrictedField.set(null, false); Field defaultPolicyField = jceSecurity.getDeclaredField("defaultPolicy"); defaultPolicyField.setAccessible(true); PermissionCollection defaultPolicy = (PermissionCollection) defaultPolicyField.get(null); Field permsField = Class.forName("javax.crypto.CryptoPermissions").getDeclaredField("perms"); permsField.setAccessible(true); ((Map<?, ?>) permsField.get(defaultPolicy)).clear(); Field instanceField = Class.forName("javax.crypto.CryptoAllPermission").getDeclaredField("INSTANCE"); instanceField.setAccessible(true); defaultPolicy.add((Permission) instanceField.get(null)); }
Das obige ist der detaillierte Inhalt vonWie kann ich die 256-Bit-AES-Verschlüsselung in Java aktivieren, ohne Richtliniendateien zu installieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!