問題:
256 ビット AES 暗号化を利用するアプリケーションの展開。最初は Java でサポートされており、「Unlimited Strength」JCE ポリシー ファイルをインストールする必要があります。これは、エンドユーザーの配布に課題をもたらします。
Java Reflection は、これらの制限を回避する独自のアプローチを提供します。
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)); }
以上がポリシー ファイルをインストールせずに Java で 256 ビット AES 暗号化を有効にするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。