我正在尝试使用ECDSASHA256中的Bouncy Castle生成签名,如下所示:

  • 我在开头的
  • 中添加了提供程序
  • 我已经建立了ECPrivatekey
  • Signature s_oSignature = Signature.getInstance("SHA256withECDSA",
    BouncyCastleProvider.PROVIDER_NAME);
    

  • 但是步骤3会抛出"java.security.NoSuchAlgorithmException: no such algorithm: SHA256withECDSA for provider BC"

    但是,当用"SHA256withECDSA"取代相同的"SHA1withECDSA"东西时,没有任何例外。

    这怎么可能?我正在使用"bcprov-jdk14-121.jar"

    我已经苦苦挣扎很长时间了,有人可以帮我吗?

    最佳答案

    我从未遇到过此问题,但是您可以尝试以下一些操作。

  • 确保已安装并配置了Java密码学扩展(JCE)无限强度管辖权策略文件(在页面底部下载here)
  • 尝试使用latest release of BouncyCastle并将其作为提供程序安装在运行时中,而不是在
  • 程序中即时运行

    这个问题非常奇怪,因为SHA256withECDSA在规格中已明确列出,因此,无论有多大的帮助可能性,它都只能尝试所有可能的选择。

    10-04 14:34