java.security.NoSuchAlgorithmException与maven和bouncycastle
如果我通过maven创建jar,我将无法启动它,调试工作正常。我已经完成了解密:RSA/NONE/OAEPPadding我正在使用bouncycastle,虽然我注册了BouncyCaste,但java没有注意到它。如果我在intellij中调试它,这不会发生。控制台输出如下所示:java.security.NoSuchAlgorithmException与maven和bouncycastle,java,maven,bouncycastle,Java,Maven,Bouncycastle,如果我通过maven创建jar,我将无法启动它,调试工作正常。我已经完成了解密:RSA/NONE/OAEPPadding我正在使用bouncycastle,虽然我注册了BouncyCaste,但java没有注意到它。如果我在intellij中调试它,这不会发生。控制台输出如下所示: adding BouncyCastleProvider2 java.security.NoSuchAlgorithmException: Cannot find any provider supporting RSA
adding BouncyCastleProvider2
java.security.NoSuchAlgorithmException: Cannot find any provider supporting RSA/NONE/OAEPPadding
at javax.crypto.Cipher.getInstance(Cipher.java:535)
at leanderk.rplay.library.RTSPResponder.decryptRSA(RTSPResponder.java:338)
at leanderk.rplay.library.RTSPResponder.handlePacket(RTSPResponder.java:200)
at leanderk.rplay.library.RTSPResponder.listenAndProcessPackets(RTSPResponder.java:431)
at leanderk.rplay.library.RTSPResponder.run(RTSPResponder.java:377)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Java代码:
System.out.println("adding BouncyCastleProvider2");
try {
Security.addProvider(new BouncyCastleProvider());
} catch (Error e) {
e.printStackTrace();
}
try{
// La clef RSA
PEMReader pemReader = new PEMReader(new StringReader(key));
KeyPair pObj = (KeyPair) pemReader.readObject();
// Encrypt
Cipher cipher = Cipher.getInstance("RSA/NONE/OAEPPadding");
cipher.init(Cipher.DECRYPT_MODE, pObj.getPrivate());
return cipher.doFinal(array);
}catch(Exception e){
e.printStackTrace();
}
我在绝望中发现了这个错误,希望能有一个好的结果
这是我的maven assembly插件,唯一的其他插件是编译器插件:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>leanderk.rplay.library.Main</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id> <!-- this is used for inheritance merges -->
<phase>package</phase>
</execution>
</executions>
</plugin>
虽然我不认为这会有帮助,但请看一下这篇文章:我无法更改JRE