2017-09-23 6 views
0

には、このようなアルゴリズムを、私はこのような何かを行うことによってするKeyGeneratorを使用してAESキーを生成するために、私のJavaプロジェクトではBouncyCastleを使用しようとしています:するKeyGeneratorがjava.security.NoSuchAlgorithmExceptionを返さない:はBouncyCastle

KeyGenerator gen = KeyGenerator.getInstance("AES", BouncyCastleProvider.PROVIDER_NAME); 

しかし、これは戻って保持します:

java.security.NoSuchAlgorithmException: no such algorithm: AES for provider BC 

私は間違いなくとして、私は私のjava.securityファイルを持っていることを確認しました:

security.provider.1=sun.security.provider.Sun 
security.provider.2=org.bouncycastle.jce.provider.BouncyCastleProvider 
security.provider.3=sun.security.rsa.SunRsaSign 
security.provider.4=sun.security.ec.SunEC 
security.provider.5=com.sun.net.ssl.internal.ssl.Provider 
security.provider.6=com.sun.crypto.provider.SunJCE 
security.provider.7=sun.security.jgss.SunProvider 
security.provider.8=com.sun.security.sasl.Provider 
security.provider.9=org.jcp.xml.dsig.internal.dom.XMLDSigRI 
security.provider.10=sun.security.smartcardio.SunPCSC 
security.provider.11=apple.security.AppleProvider 

とbcprov-jdk15on-1.47.jarは私のコードでは/Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home/jre/lib/ext

の下で、私はまた、

​​を使用しました()をSecurity.getProvidersを使用して自分のコードを実行するときに、私はすべてのプロバイダーの一覧を表示しようとした場合

は、私は以下を参照してください。

SUN 
BC 
SunRsaSign 
SunEC 
SunJSSE 
SunJCE 
SunJGSS 
SunSASL 
XMLDSig 
SunPCSC 
Apple 

ので、この時点で、私は私が見逃しているかもしれない他に何かわかりません。

助けてください、

+0

これはJCEの無制限強度管轄権ポリシーと関係があると思いますか?あなたのディレクトリに無制限の強度のジャーを持っていますか? http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html – neal

+0

こんにちは!はい、私は実際にJava 7をレガシー・レポのために使用しています。http://www.oracle.com/technetwork/java/javase/downloads/jce-7-ja/から、US_export_policy.jarおよびlocal_policy.jarを抽出しました。ダウンロード-432124.htmlを開き、/Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home/jre/lib/securityに入れてください – user1805458

+0

私は他のことを忘れましたか?ありがとう – user1805458

答えて

1

実は私の悪いおかげで、私は私自身の問題を解決したと思います。私も私の質問ではっきりしているはずです。私はこれをJunitテストで実行していて、なぜ失敗したのか不思議に思っていました。

明らかに、PowerMockはすべてのjavax.crypto。*ライブラリを模倣しているので、これらのライブラリを明示的に無視するようにPowerMockに指示しなければなりません。

関連する問題