带有RSA签名的Java存储过程SHA256不可用

时间:2015-09-09 12:16:29

标签: java oracle procedure sha256

我在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

1 个答案:

答案 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);
    }
  }
}