を見つけていない私は JavaバージョンでWebSphereサーバー8.5 上の問題を抱えている= 1.6.0、Javaランタイムのバージョン= pap6460_26sr8fp7ifx-20151008_01(SR8 FP7)java.security.NoSuchAlgorithmException:署名MD5WITHRSA実装
失敗したコードは次のとおりです。
Security.addProvider(new BouncyCastleProvider());
Signature sign = Signature.getInstance("MD5withRSA", "BC");
私が手にエラーがある:
java.security.NoSuchAlgorithmException: Signature MD5WITHRSA implementation not found: java.lang.ClassNotFoundException: org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$MD5
同じコードがドで動作します
セキュリティ:わずかに異なるJavaバージョンとのvelopment環境(Javaバージョン= 1.6.0は、Javaランタイムのバージョン= pap6460_26sr8fp20-20160111_01(SR8 FP20))は
私は、次のコードで、すべての署名アルゴリズムを一覧表示しようとしています。 addProvider(新しいBouncyCastleProvider());
TreeSet<String> algorithms = new TreeSet<String>();
for (Provider provider : Security.getProviders())
for (Service service : provider.getServices())
if (service.getType().equals("Signature"))
algorithms.add(service.getAlgorithm());
for (String algorithm : algorithms)
System.out.println(algorithm);
と私が取得:
DSA
DSAforSSL
ECDSA
ECDSAforSSL
ECGOST3410
GOST3410
GOST3411WITHECGOST3410
MD2WITHRSA
MD2withRSA
MD4WITHRSA
MD5WITHRSA
MD5withRSA
MD5withRSA/ISO9796-2
NONEWITHDSA
NONEwithECDSA
OID.1.2.840.113549.1.1.10
RAWRSASSA-PSS
RIPEMD128WITHRSA
RIPEMD160WITHECDSA
RIPEMD160WITHRSA
RIPEMD160withRSA/ISO9796-2
RIPEMD256WITHRSA
RMD128WITHRSA
RMD160WITHRSA
RMD256WITHRSA
RSA
RSAPSS
RSASSA-PSS
RSAforSSL
SHA1WITHCVC-ECDSA
SHA1WITHECNR
SHA1WITHRSA
SHA1withDSA
SHA1withECDSA
SHA1withRSA
SHA1withRSA/ISO9796-2
SHA1withRSA/PSS
SHA224WITHCVC-ECDSA
SHA224WITHDSA
SHA224WITHECDSA
SHA224WITHECNR
SHA224WITHRSA
SHA224withECDSA
SHA224withRSA
SHA224withRSA/PSS
SHA256WITHCVC-ECDSA
SHA256WITHDSA
SHA256WITHECDSA
SHA256WITHECNR
SHA256WITHRSA
SHA256withDSA
SHA256withRSA
SHA256withRSA/PSS
SHA2withECDSA
SHA384WITHDSA
SHA384WITHECDSA
SHA384WITHECNR
SHA384WITHRSA
SHA384withRSA
SHA384withRSA/PSS
SHA3withECDSA
SHA512WITHDSA
SHA512WITHECDSA
SHA512WITHECNR
SHA512WITHRSA
SHA512withRSA
SHA512withRSA/PSS
SHA5withECDSA
ので、MD5withRSAがあります。
クラスorg.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi $ MD5正しくクラスの場所を返し
アプリケーションと
System.out.println("--->DigestSignatureSpi" + MD5.class.getResource("DigestSignatureSpi$MD5.class"));
の内側にあります。
何が問題なのですか?
'Signature sign = Signature.getInstance(" MD5withRSA ")を実行すると、' org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi $ MD5'がクラスパスにないと思います。 "、" BC ")'。どちらの場合でもBouncy Castleのバージョンを確認しましたか? – SubOptimal
バージョンは、Webアプリケーションの同じ戦争のjarと同じです。ファイルはクラスパス内になければなりません。それ以外の場合、System.out.println( "---> DigestSignatureSpi" + MD5.class.getResource( "DigestSignatureSpi $ MD5.class"))はどこにあるのかわかりません。 – Gyonder