按照网上帖子使用AES加密的时候显示new BouncyCastleProvider()找不到
原帖地址:http://my.oschina.net/nicsun/blog/95632
我去官网下载了适用的版本bcprov-jdk15on-153.jar
下载地址:http://www.bouncycastle.org/java.html
在右上角有个Java Release 1.53 is now available for download ->下方的latest releases
然后build path之后终于没有说找不到相关类,但是出现如图错误
java.lang.SecurityException: The jurisdiction policy files are not signed by a trusted signer!
主要是因为加密文件的版本和jdk的版本加密文件不相同。查看主类(local_policy.jar,US_export_policy.jar)和jdk的加密文件的版本不相同。
参考文章:http://m.oschina.net/blog/279731
local_policy.jar和US_export_policy.jar下载地址(注意jdk版本要对应)
jdk6
http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html
JDK7
http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html
JDK8
http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
如果还有问题,那么试试下面方法
配置安全属性文件
安全属性文件java.security位于和/lib/ext平行的另一个目录/lib/security下,它定义了当前可以使用的加密提供者。找到如下内容:
security.provider.1=sun.security.provider.Sun
security.provider.2=sun.security.rsa.SunRsaSign
它表明本虚拟机有两个加密提供者以及他们的优先级和访问时使用的名称。当需要用到一个加密算法时,虚拟机会依次访问这里列出的提供者,寻找想要的算法,并按这里的优先级顺序使用第一个找到的算法。我们应该在文件中插入新的提供者例如:
security.provider.11=org.bouncycastle.jce.provider.BouncyCastleProvider