Rumah > Java > javaTutorial > Mengapa Saya Mendapat Ralat 'Tidak Dapat Menjana Pasangan Kunci DH' Semasa Jabat Tangan SSL?

Mengapa Saya Mendapat Ralat 'Tidak Dapat Menjana Pasangan Kunci DH' Semasa Jabat Tangan SSL?

Susan Sarandon
Lepaskan: 2024-12-06 21:07:14
asal
725 orang telah melayarinya

Why Am I Getting a

Ralat: 'Tidak dapat menjana pasangan kekunci DH' semasa jabat tangan SSL

Masalah:

Apabila mewujudkan sambungan SSL dengan pelayan IRC tertentu, pembangun menghadapi perkara berikut pengecualian:

java.lang.RuntimeException: Could not generate DH keypair
...
java.security.InvalidAlgorithmParameterException: Prime size must be multiple of 64, and can only range from 512 to 1024 (inclusive)
Salin selepas log masuk

Jawapan:

Punca isu ini ialah "saiz utama" yang digunakan dalam algoritma pertukaran kunci Diffie-Hellman (DH). Pelaksanaan SSL lalai Java mengehadkan saiz utama kepada maksimum 1024 bit (lihat JDK-6521495).

Penyelesaian:

Untuk menyelesaikan masalah, pembangun Java boleh mempertimbangkan menggunakan kit alat alternatif atau melaksanakan penyelesaian. Berikut ialah penyelesaian yang disyorkan:

  1. Gunakan Kit Alat Alternatif: Gunakan pelaksanaan SSL berbeza yang menyokong saiz utama lebih besar daripada 1024 bit, seperti pelaksanaan JCE BouncyCastle.
  2. Edit Kod Sumber Java (Tidak Disyorkan): Ubah suai kod sumber kelas DHKeyPairGenerator Java (terletak di com.sun.crypto.provider) untuk meningkatkan had saiz utama maksimum.

Versi Java Kemudian:

Perhatikan bahawa dalam versi Java kemudian, had saiz perdana maksimum untuk pertukaran kunci DH telah dinaikkan. Berikut ialah ringkasan:

  • Java 8 (JDK-7044060): Had dinaikkan kepada 2048 bit.
  • Java 9 (JDK-8072452): Had dialih keluar untuk saiz utama yang lebih besar daripada 2048 bit.

Jika ya menggunakan versi Java yang lebih lama, adalah disyorkan untuk menaik taraf untuk memanfaatkan had saiz perdana yang meningkat.

Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat 'Tidak Dapat Menjana Pasangan Kunci DH' Semasa Jabat Tangan SSL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan