我在oracle数据库版本" Oracle数据库11g企业版11.2.0.3.0 64位生产"。
上遇到了java存储过程的问题。我需要使用sha256withRsa来签署一些数据。在这种情况下,我使用了java存储过程。 NetKans ide与JDK1.5或JDK1.7相同的源代码(尝试更改)。
当我在数据库端执行相同的代码时,我得到:
ORA-29532:Java调用因未捕获的Java异常而终止:java.security.NoSuchAlgorithmException:SHA256WithRSAEncryption签名不可用
这行代码是原因:
签名podpis = Signature.getInstance(" SHA256withRSA");
如何解决这个问题?
数据库端的Java是:JDK 1.5.0_10
答案 0 :(得分:1)
在netbeans和plsql中运行此类。要在plsql中查看输出执行。
set serveroutput on;
dbms_java.set_output(20000);
您正在寻找Signature.SHA256withRSA。
import java.security.Provider;
import java.security.Security;
import java.util.Enumeration;
/**
*
* @author alukasiewicz
*/
public class TestSignature {
public static void print() throws Exception {
try {
Provider p[] = Security.getProviders();
for (int i = 0; i < p.length; i++) {
System.out.println(p[i]);
for (Enumeration e = p[i].keys(); e.hasMoreElements();)
System.out.println("\t" + e.nextElement());
}
} catch (Exception e) {
System.out.println(e);
}
}
}