Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用BouncyCastle的SHA2RSA加密_Java_Security_Bouncycastle_Jce - Fatal编程技术网

Java 使用BouncyCastle的SHA2RSA加密

Java 使用BouncyCastle的SHA2RSA加密,java,security,bouncycastle,jce,Java,Security,Bouncycastle,Jce,我一直在尝试使用BouncyCastle的JCE提供程序加密一些数据。我正在尝试“SHA256withRSA”,我得到了一个“noSuchAlgorithmException”。我做错什么了吗?有人能帮忙吗?谢谢 具体地说,我正在努力 Signature.getInstance("SHA256withRSA", new BouncyCastleProvider()); 如本文所述-这可能是选择提供商的问题 我看到标准的SunJSSE提供程序支持带有RSA的SHA1,但不支持带有RSA的SHA2

我一直在尝试使用BouncyCastle的JCE提供程序加密一些数据。我正在尝试“SHA256withRSA”,我得到了一个“noSuchAlgorithmException”。我做错什么了吗?有人能帮忙吗?谢谢

具体地说,我正在努力

Signature.getInstance("SHA256withRSA", new BouncyCastleProvider());

如本文所述-

这可能是选择提供商的问题

我看到标准的SunJSSE提供程序支持带有RSA的SHA1,但不支持带有RSA的SHA256

您的代码中是否有类似的内容:

sigGen = new JcaContentSignerBuilder("SHA1withRSA").setProvider("BC").build(privKey);
请尝试以下方法:

Signature.getInstance("SHA256withRSA", "BC");
在我看到的大多数示例中,第二个参数与提供程序本身相比,有一个字符串正在传递

getInstance方法似乎支持传入一个提供程序,但可能只是这样做

 new BouncyCastleProvier()
未正确构造它,导致缺少算法。我怀疑通过传递“BC”字符串,它将使用JCA/JCE中已构造的提供程序

参考:

首先添加提供程序

java.security.Security.addProvider(new BouncyCastleProvider());
然后

Signature.getInstance("SHA256withRSA", "BC");

我不。很抱歉我缺乏知识。我不确定使用这种方式构建的“ContentSigner”与使用“签名”和使用私钥初始化之间的区别。我想不同的用例?我得到的重要部分是setProvider(“BC”)部分,它告诉JCA/JCE使用BouncyCastle提供程序。是的,我正在这么做。所以你认为BouncyCastle jce提供商一开始就没有SHA256withRSA?不,是的。我想确定你使用的是BouncyCastle提供程序。好的,我特别告诉它使用该提供程序。我不知道出了什么问题。非常感谢您花时间研究这个问题。您是在尝试加密还是生成签名?@praneeth varma您找到答案了吗?首先,我道歉。我不在城里,没有检查我的问题的答案。请不要弄错。说到问题。。。。。。成功了!。非常感谢。太棒了,很高兴听到。