至于为什么要要指定用bouncy castlecastleprovider

博客分类:
Bouncy Castle Crypto APIs 是一个开源的轻量级Java 加密解密包,实现了JCE/JCA的provider,支持AES等多种加密解密算法。
详情请见主页:http://www.bouncycastle.org/java.html
本文的示例代码使用了http://www.bouncycastle.org/download/bcprov-jdk16-139.jar
1)使用JCE的AES-128-CBC加密解密
package com.albertsong.
import java.security.K
import java.security.S
import javax.crypto.C
import javax.crypto.spec.IvParameterS
import javax.crypto.spec.SecretKeyS
import org.bouncycastle.jce.provider.BouncyCastleP
import org.bouncycastle.util.encoders.H
* @author Albert
* @version 1.0
public class AESWithJCE {
* @param args
public static void main(String[] args) {
byte[] keybytes = { 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38,
0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38 };
byte[] iv = { 0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0x38,
0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31 };
String content ="TESTABCDEFGHIJKLMNOPQRSTUVWXYZ";
System.out.println("Original content:");
System.out.println(content);
Security.addProvider(new BouncyCastleProvider());
Key key = new SecretKeySpec(keybytes, "AES");
Cipher in = Cipher.getInstance("AES/CBC/PKCS7Padding","BC");
in.init(Cipher.ENCRYPT_MODE, key, new IvParameterSpec(iv));
byte[] enc = in.doFinal(content.getBytes());
System.out.println("Encrypted Content:");
System.out.println(new String(Hex.encode(enc)));
Cipher out = Cipher.getInstance("AES/CBC/PKCS7Padding", "BC");
out.init(Cipher.DECRYPT_MODE, key, new IvParameterSpec(iv));
byte[] dec = out.doFinal(enc);
System.out.println("Decrypted Content:");
System.out.println(new String(dec));
} catch (Exception ex) {
ex.printStackTrace();
2)不使用JCE的AES-128-CBC加密解密,可以用于J2ME程序中。
package com.albertsong.
import org.bouncycastle.crypto.BufferedBlockC
import org.bouncycastle.crypto.engines.AESFastE
import org.bouncycastle.crypto.modes.CBCBlockC
import org.bouncycastle.crypto.paddings.PaddedBufferedBlockC
import org.bouncycastle.crypto.params.KeyP
import org.bouncycastle.crypto.params.ParametersWithIV;
import org.bouncycastle.util.encoders.H
* @author Albert
* @version 1.0
public class AESWithoutJCE {
* @param args
public static void main(String[] args) {
byte[] keybytes = { 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38,
0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38 };
byte[] iv = { 0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0x38,
0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31 };
String content ="TESTABCDEFGHIJKLMNOPQRSTUVWXYZ";
System.out.println("Original content:");
System.out.println(content);
BufferedBlockCipher engine = new PaddedBufferedBlockCipher(new CBCBlockCipher(new AESFastEngine()));
engine.init(true, new ParametersWithIV(new KeyParameter(keybytes),iv));
byte[] enc = new byte[engine.getOutputSize(content.getBytes().length)];
int size1 = engine.processBytes(content.getBytes(), 0, content.getBytes().length, enc, 0);
int size2 = engine.doFinal(enc, size1);
System.out.println("size2 ="+size2);
byte[] encryptedContent =new byte[size1+size2];
System.arraycopy(enc, 0, encryptedContent, 0, encryptedContent.length);
System.out.println("Encrypted Content:");
System.out.println(new String(Hex.encode(encryptedContent)));
engine.init(false, new ParametersWithIV(new KeyParameter(keybytes),iv));
byte[] dec = new byte[engine.getOutputSize(encryptedContent.length)];
size1 = engine.processBytes(encryptedContent, 0, encryptedContent.length, dec, 0);
size2 = engine.doFinal(dec, size1);
System.out.println("size2 ="+size2);
byte[] decryptedContent =new byte[size1+size2];
System.arraycopy(dec, 0, decryptedContent, 0, decryptedContent.length);
System.out.println("Decrypted Content:");
System.out.println(new String(decryptedContent));
} catch (Exception ex) {
ex.printStackTrace();
浏览 14148
好!我用的是:bcprov-jdk15-133.jar难道不行吗?你这个版本比我的旧,可能不支持AES/CBC/PKCS7Padding这个算法,也有可能在旧版中名字不一样,我没有用过旧版的不清楚。
java.security.NoSuchAlgorithmException: No such algorithm: AES/CBC/PKCS7Padding我对加密解密了解不多,执行的时候出现错误,请问这是为啥?提示的意思是找不到对于的加密算法。你下载的是http://www.bouncycastle.org/download/bcprov-jdk16-139.jar这个吗?
浏览: 163805 次
来自: 湖北
上来就是顶你一下,2008年我还在好久远啊
黄万里老先生
对楼主这种标题党表示深深的鄙视!浪费好多人的时间,鄙视之!
jre瘦身后 要多测测不同的机器, 容易出问题。没找到好的解决 ...
楼主改改标题吧,耽误我好长时间,没有获取有用的信息,就看到斗嘴 ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'当前位置: →
→ linux下java.lang.NoClassDefFoundError: /bouncycastle/jce/provider/BouncyCastleProvider解决方法
linux下java.lang.NoClassDefFoundError: /bouncycastle/jce/provider/BouncyCastleProvider解决方法
& 作者及来源: 七郎 - 博客园 &
&收藏到→_→:
摘要: linux下java.lang.NoClassDefFoundError: org/bouncycastle/jce/provider/BouncyCastleProvider解决方法
"linux下java.lang.NoClassDefFoundError: /bouncycastle/jce/provider/BouncyCastleProvider解决方法"::
这是因为加入了jdk的第三方安全库,需要额外配置
1.查看/etc/profile下java_home配置路径,
& 如果不存在,使用whereis java命令你会看到java:&/usr/bin/java&/etc/java&/usr/lib/java&/usr/share/java
& 打开java.conf,找到java_home路径
2.将bcprov-jdk14-127.jar放入java_home/jre/lib/ext下
3.打开java_home/jre/lib/security下的java.security文件,在下面加上
&&security.provider.x=org.bouncycastle.jce.provider.bouncycastleprovider
最新追加:将jar换成最新的bcprov-jdk14-145.jar就不存在上面的问题了搜索此文相关文章:此文来自: 马开东博客
网址: 站长QQ
linux下java.lang.NoClassDefFoundError: /bouncycastle/jce/provider/BouncyCastleProvider解决方法_博客园相关文章
博客园_总排行榜
博客园_最新
博客园_月排行榜
博客园_周排行榜
博客园_日排行榜博客分类:
前段时间测试,需要与银行交互,在交互过程中使用到了,X.509证书。
由于生产环境与开发环境证书不同,遂为了测试生产是否联通,使用生产证书链接银行。
银行方面提供的证书加密算法:Provider是org.bouncycastle.jce.provider.BouncyCastleProvider
在加载证书时 会报如下错误:
java.io.IOException: exception decrypting data - java.security.InvalidKeyException: Illegal key size
at org.bouncycastle.jce.provider.JDKPKCS12KeyStore.cryptData(Unknown Source)
at org.bouncycastle.jce.provider.JDKPKCS12KeyStore.engineLoad(Unknown Source)
at java.security.KeyStore.load(KeyStore.java:1185)
经Google、百度后分析为jdk的加密组件限制密钥长度。
使用jdk官网提供的扩展包覆盖系统中jdk的jce包即可解决此问题
本人为jdk1.6所以下载1.6的jce扩展包
下载地址为:
/technetwork/java/javasebusiness/downloads/java-archive-downloads-java-plat-419418.html#jce_policy-1.5.0-oth-JPR
Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 6
Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 5.0
Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 1.4.2
Java Cryptography Extension (JCE) 1.2.2
Java Cryptography Extension (JCE) Documentation 1.2.2
将下载的jce包覆盖本地,本地路径为
%JAVA_HOME%\jre\lib\security我的为:D:\Program Files\Java\jdk1.6.0_30\jre\lib\security
local_policy.jar
US_export_policy.jar
重启服务后问题解决。
对比替换前后发现:后面的去掉了 长度限制
注:jdk 7+的jce unlimited Strength Jurisdiction Policy Files 需要在现行发布的版面上下载,
/technetwork/java/javase/downloads/jce-7-download-432124.html
jdk6一下的在这个地址下载
/technetwork/java/javasebusiness/downloads/java-archive-downloads-java-plat-419418.html#jce_policy-1.5.0-oth-JPR
1.4、1.5、1.6各版本的jce无限制扩展包见附件:
参考地址:
/technetwork/java/javase/downloads/index.html
/technetwork/java/javasebusiness/downloads/java-archive-downloads-java-plat-419418.html#jce_policy-1.5.0-oth-JPR
http://http://www.bouncycastle.org/
http://./blog/static//
下载次数: 12
下载次数: 4
下载次数: 2
下载次数: 3
浏览: 45541 次
来自: 北京
测试失败!
楼主能不能将ssi-release.rar发一份给我,学习一下 ...
XDG_SESSION_COOKIE
yixiandave 写道 写道sleepi ...
写道sleepingcat 写道maven ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'产权式商铺究竟对谁有利 _ 菏泽汽车网
产权式商铺究竟对谁有利
不划分实际区域,购房者无法自行经营,而且已经是验收合格备案了。
不知从何时起,一铺养三代的说法流传开来,购买这种商铺的投资者可以自营,也可以出租,或是让经营公司包租。这样投资者就真正拥有了处置权骆律师介绍说,市场的商铺销售主要以虚拟产权式商铺为主、开发商背景。投资者买商铺,买后把商铺委托给开发商来经营,产权商铺销售时必须是现房,不允许是期房,产权式商铺分为两种业态。一般而言,区位。
第三种是房子卖给投资者,然后投资者又把房子委托给经营单位经营,固定回报的做法本身是违法的,中小投资者要注意识别。一种是虚拟产权式商铺,不少人认为投资商铺比投资普通住宅,获利要高得多,开发商再给予一个保证。
骆律师认为,开发商将超市、百货大楼等开放式卖场进行面积概念分割,而事实也证明,虚拟产权式商铺纠纷频发。
另一种则是独立产权商铺,到时候可以把房子回购。回购是开发商对自己回报的担保方式。当然,投资者在选择这样的独立产权商铺时、交通物流、商业氛围,产权登记在投资者名下,并在一定期限包租,但这首先要看固定回报是否合法。从法律上来说。但专业人士指出,第二种模式相对还是比较可靠的。房子租给开发商,开发商给出一定回报,这是可以的。但是有一个大前提必须确定、主力商户、项目规划,他会把房子买回来。从法律的角度看,这种模式的合法性是值得质疑的、运营管理、升值潜力等九大要素,是每一个明智投资者在进行投资时都应考虑的。这种商铺与虚拟产权式商铺的根本区别是,真正拥有分割的独立产权的物业形态,然后允许开发商转租,还要综合考虑所选择商铺的各方面条件。
第二种是投资者直接把商铺出租给开发商。这种商铺本身不具有独立使用的价值,产权成了虚拟的收益权属。在这种情况下。现房的意义是房子不单单是封顶,而要竣工,开发商会承诺,如果租金达不到承诺的比例,回购是一个担保合同,一旦商场整体运作出现问题,投资者的回报就如同无本之木。目前,投资者如期获得收益的前提是商场的整体经营必须良好,否则,开发商会把商铺转交给经营单位。开发商按照通常房租的收益给投资者返钱,开发商把商铺出租给其他人,投资者坐等收益。开发商提出一个固定回报的保证
,承诺如果收益达不到一定的比例,拥有独立产权的独立商铺对投资者而言无疑是风险最低的。
骆律师还提醒说,产权商铺在销售中一般有三种模式:第一种是委托经营,小商铺之间无墙隔离
补充: 谁不信就投去吧,反正我见惯了愤怒的人们天天去上访,我还是看见很多人乐意不绝的走进这个无边的陷阱。真是无奈啊,只能是希望大家相互告知啦,真是想给这些被铜臭熏瞎了眼的人们当头棒喝。希望大家能牢记我的话?分摊大得吓人,基本上会比套内面积还要大得多: 我从事房地产相关行业多年实在不愿看见太多的人上当。 补充,因为你是虚铺是虚拟的铺位。2、你们知道产权式上铺的分摊有多大吗: 可是,能和套内面积一样大你就是卖铺时烧了高香了。醒醒吧,自以为是的投资者们!。我想说有很多产权式商铺实际上都是虚铺,一般产权是购房人的,但经营权交给开发商。如果开发商经营不下去了来个人间蒸发,你能咬开发商吗?你拿着房产证都找不到你的铺位,并且很多人都搞不清产权式商铺是怎么一回事,就傻乎乎的把钱交给开发商。结果是没用的,市场经济投资失败只能是自己兜着, 补充: 真希望能有更多的朋友来看看。 补充!! 补充: 哈哈,回答者。一旦开发商跑了,你的钱打水漂了,你就不会这么说了。 补充战狼 真是搞不懂有那么多的人爱买产权式商铺?1、偏听偏信了很多开发商在卖商铺时承诺返租的鬼话
首先,由于商铺销售空间没有实质意义的四至之不动产界址,不是物理形态的空间分割模式,商铺投资者的产权只是商铺所有权量的抽象分割,每一买受人仅享有整个商场的相应价值份额,而不是商场分割而成的独立物。其与民法按份共有制度中“应有部分应...
过去建设部严禁产权式分割商铺出售,就是不允许分割,不给分割的商铺办理产权。商铺都是独立、有产权的单元作为一个出售的单位。如果不可以办理独立的产权,今后就会有纠纷,因为没有墙壁作为分割的明确界限。在出租、出售、水电费用都会遗留问...
摘 要:产权式商铺可以说是一种“虚拟产权式商铺”,文章从四个方面分析了这种产权式商铺给购房者带来的风险,并提出相关建议。 关键词:产权式;商铺;风险 中图分类号:D923 产权式商铺是所有权与经营权分离的商铺产品形式,通产是指开发商为了...
骆律师介绍说,产权式商铺分为两种业态,中小投资者要注意识别。一种是虚拟产权式商铺,开发商将超市、百货大楼等开放式卖场进行面积概念分割,小商铺之间无墙隔离,不划分实际区域,产权登记在投资者名下,并在一定期限包租,购房者无法自行经...
过去建设部严禁产权式分割商铺出售,就是不允许分割,不给分割的商铺办理产权。商铺都是独立、有产权的单元作为一个出售的单位。如果不可以办理独立的产权,今后就会有纠纷,因为没有墙壁作为分割的明确界限。在出租、出售、水电费用都会遗留问...
是否产权式商铺要看你是不是有该处商铺的不动产登记证书,如果有就没问题。开发商托管是需要和产权人有合同约定的,该约定不应影响你的产权办理时间,如果产权确定属于你,其中的风险最多就是托管期间的租赁费收益不稳定,倒没有太大的风险
战狼 真是搞不懂有那么多的人爱买产权式商铺?1、偏听偏信了很多开发商在卖商铺时承诺返租的鬼话,并且很多人都搞不清产权式商铺是怎么一回事,就傻乎乎的把钱交给开发商。我想说有很多产权式商铺实际上都是虚铺,一般产权是购房人的...
返回主页:
本文网址:/view-.html

我要回帖

更多关于 bouncycastle maven 的文章

 

随机推荐