InvalidKeyException: Saiz Kunci Haram
Masalah:
Apabila menjalankan ujian penyepaduan berterusan pada Pelayan TeamCity, "java.security.InvalidKeyException: Kunci tidak sah saiz" ralat berlaku. Kod ini menggunakan BouncyCastle untuk penyulitan AES dan berfungsi dengan betul pada pembangunan MacBook Pro dengan Java 1.6.
Punca:
Mesin maya Java mengehadkan saiz kunci disebabkan oleh eksport AS undang-undang.
Penyelesaian:
Java 9 dan Lebih Tinggi
- Fail Dasar Bidang Kuasa Kekuatan Tanpa Had disertakan oleh lalai dan diaktifkan. Jika ralat berterusan, ia menunjukkan konfigurasi dasar yang lebih ketat.
Java 8 dan Terdahulu
Java 8 Update 161 dan Higher
- Java 8 lalai kepada Dasar Bidang Kuasa Kekuatan Tanpa Had. Jika ralat berlaku, semak konfigurasi kerana ia mungkin telah ditukar kepada terhad.
Java 8 Update 151 and Higher
- Edit java fail .security untuk menyahkomen atau menambah baris "crypto.policy=unlimited" untuk membolehkan Bidang Kuasa Kekuatan Tanpa Had Dasar.
- Mulakan semula JVM selepas membuat perubahan.
Sebelum Kemas Kini Java 8 151
- Pasang Sambungan Kriptografi Java ( JCE) Fail Dasar Bidang Kuasa Kekuatan Tanpa Had disediakan oleh Oracle.
- Gantikan fail dasar "kuat" asal dengan versi kekuatan tanpa had.
- Mulakan semula JVM selepas pemasangan.
Pertimbangan Tambahan:
- BouncyCastle boleh digunakan untuk mengelakkan had ini, tetapi hanya jika kelas BC tersuai digunakan secara langsung, bukan melalui pembekal BC.
- Menggunakan Dasar Bidang Kuasa Kekuatan Tanpa Had mungkin melanggar undang-undang eksport AS. Pertimbangkan untuk berunding dengan penasihat undang-undang tempatan atau Oracle untuk mendapatkan bimbingan.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat 'java.security.InvalidKeyException: Saiz Kunci Haram' di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!