搜尋
首頁Javajava教程如何在不安裝策略檔案的情況下在 Java 中啟用 256 位元 AES 加密?

How Can I Enable 256-bit AES Encryption in Java Without Installing Policy Files?

避免安裝策略檔案以獲得無限的加密強度

問題:
部署使用256 位元AES 加密的應用程序,這不是最初由Java 支持,需要安裝「無限強度」JCE 策略檔案。這給最終用戶分發帶來了挑戰。

方法一:策略檔案安裝

  • 安裝的 JCE 策略檔案授予必要的加密權限。
  • 但是,此解決方案是由於安裝障礙,對於最終用戶分發來說不切實際。

方法二:替代加密技術庫

  • 使用 Bouncy Castle 等第三方函式庫可以繞過 JCE 限制。
  • 涉及額外的依賴項,重複標準功能,並且影響 TLS 加密。

基於反射的解決方案

  • Java反射提供了一種獨特的方法來繞過這些限制:

    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));
    }
  • 透過操作JceSecurity 變數來刪除加密限制
  • 保證256 位元密碼,無需在Java 7 和 8 上安裝文件,跳過Java 9 中的程序和OpenJDK。

注意事項

  • 此解決方案是特定於供應商的,可能不適用於其他 Java 實作。
  • 支援 Java 7 和 8,但可以進行調整以支援具有額外複雜性的 Java 6。
  • 它被認為是一種 hack,但可能不是得到 Oracle 的認可。

以上是如何在不安裝策略檔案的情況下在 Java 中啟用 256 位元 AES 加密?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前By尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器