Semasa pembangunan Java, apabila kami menggunakan beberapa algoritma penyulitan atau alatan penyulitan tertentu, kami mungkin menghadapi pengecualian NoSuchProviderException. Pengecualian ini biasanya disebabkan oleh pembekal penyulitan yang diperlukan tidak ditemui. Artikel ini akan memperkenalkan punca dan penyelesaian NoSuchProviderException.
1. Sebab pengecualian
Sebab pengecualian NoSuchProviderException ialah pembekal penyulitan yang diperlukan tidak boleh ditemui dalam seni bina penyulitan Java. Java menyokong banyak penyedia penyulitan seperti SunJCE, SunJSSE, dll. Jika kami menggunakan pembekal penyulitan yang tidak disokong dalam kod kami, atau pembekal penyulitan tidak wujud dalam persekitaran masa jalan, NoSuchProviderException akan dibuang.
2. Penyelesaian pengecualian
Cara untuk menyelesaikan pengecualian NoSuchProviderException ialah dengan menentukan penyedia penyulitan yang diperlukan dalam Java. Kita boleh memilih untuk menentukan pembekal yang diperlukan secara manual dalam kod atau dalam fail keselamatan dalam direktori pemasangan Java. Di bawah ini kami akan memperkenalkan kedua-dua penyelesaian ini masing-masing.
Kami boleh menggunakan kaedah Security.addProvider() dalam kod untuk menambah pembekal yang diperlukan secara manual. Contohnya, apabila kami menggunakan pustaka penyulitan Bouncy Castle, kami boleh menggunakan kod berikut untuk menentukan pembekal secara manual:
Security.addProvider(new BouncyCastleProvider());
Kaedah ini akan menambah perpustakaan penyulitan Bouncy Castle pada persekitaran masa jalan Java, dengan itu memastikan kod kami boleh menggunakan Fungsi algoritma penyulitan penyedia Bouncy Castle.
Terdapat folder bernama keselamatan dalam direktori pemasangan Java Fail java.security dalam folder ini ialah fail konfigurasi seni bina penyulitan Java. Kami boleh menambah pembekal yang diperlukan dalam fail ini supaya persekitaran masa jalan Java boleh memuatkannya secara automatik.
Pertama, kita perlu mencari di mana fail java.security berada. Untuk sistem pengendalian Windows, ia biasanya terletak di bawah laluan %JAVA_HOME%jrelibsecurity untuk sistem pengendalian Linux, ia biasanya terletak di bawah laluan /usr/lib/jvm/java-
Buka fail java.security, cari baris security.provider.1, dan tukarkannya kepada bentuk berikut:
security.provider.1=org.bouncycastle.jce.provider.BouncyCastleProvider
Kaedah ini akan memuatkan penyedia Bouncy Castle dalam persekitaran masa jalan Java, membenarkan kod kami menggunakan Penyulitan Bouncy fungsi algoritma yang disediakan oleh Castle.
Summary
NoSuchProviderException ialah pengecualian biasa dalam seni bina penyulitan Java, biasanya disebabkan oleh pembekal penyulitan yang diperlukan tidak ditemui. Cara untuk menyelesaikan pengecualian ini adalah dengan menentukan penyedia penyulitan yang diperlukan dalam Java Kita boleh memilih untuk menentukan pembekal secara manual atau menentukan pembekal dalam fail keselamatan. Tidak kira kaedah mana pun, mereka boleh membantu kami menyelesaikan pengecualian NoSuchProviderException supaya kod kami berjaya menggunakan fungsi algoritma penyulitan yang kami perlukan.
Atas ialah kandungan terperinci Penyelesaian kepada pengecualian NoSuchProviderException di Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!