bouncy castle

官方主页  http://www.bouncycastle.org/

Bouncy Castle 是一种用于 Java 平台的开放源码的轻量级密码术包。它支持大量的密码术算法,并提供 JCE 1.2.1 的实现。因为 Bouncy Castle 被设计成轻量级的,所以从 J2SE 1.4 到 J2ME(包括 MIDP)平台,它都可以运行。它是在
MIDP 上运行的唯一完整的密码术包。

Bouncy Castle的Java JCE安装方法

1、去官方站点下载Bouncy Castle的JCE Provider包 bcprov-ext-jdk15-145.jar

2、把jar文件复制到 $JAVA_HOME$\jre\lib\ext 目录下面

3、修改配置文件\jre\lib\security\java.security

security.provider.1=sun.security.provider.Sun

security.provider.2=sun.security.rsa.SunRsaSign

security.provider.3=com.sun.net.ssl.internal.ssl.Provider

security.provider.4=com.sun.crypto.provider.SunJCE

security.provider.5=sun.security.jgss.SunProvider

security.provider.6=com.sun.security.sasl.Provider

#前面是java环境已经提供的,尾部加上这一行即可

security.provider.7=org.bouncycastle.jce.provider.BouncyCastleProvider

4、可以写个小程序查看本地java系统中安装的所有的JCE提供者,和一些相应算法。

 

import java.security.*;
public class Check {
public static void main(String[] args) {
 System.out.println("-------列出加密服务提供者-----");
 Provider[] pro=Security.getProviders();
 for(Provider p:pro){
   System.out.println("Provider:"+p.getName()+" - version:"+p.getVersion());
   System.out.println(p.getInfo());
  }
   System.out.println("");
   System.out.println("-------列出系统支持的消息摘要算法:");
   for(String s:Security.getAlgorithms("MessageDigest")){
   System.out.println(s);
  }
   System.out.println("-------列出系统支持的生成公钥和私钥对的算法:");
   for(String s:Security.getAlgorithms("KeyPairGenerator")){
   System.out.println(s);
    }
  }
}

可以看到列出系统已经安装的所有的JCE提供者,并且著名的一些的消息摘要算法:MD5,生成公钥私钥对的算法RSA等都在其中。

时间: 2025-01-20 13:11:47

bouncy castle的相关文章

消息摘要算法-bouncy castle支持的MD4算法扩展

sun本身支持MD2和MD5,但是缺少进制转换与支持   bouncy castle对sun进行支持补充,提供了对MD4的算法,同时对十六进制转换提供了支持.   commons codec 只是针对MD5支持,并且支持16进制   但是大部分场景下我们都是使用MD5,毕竟MD5是经过MD4改良进来了.不过也有场景可能会用到MD4.那我们就将MD4消息摘要处理的代码展示下: package com.ca.test; import java.security.MessageDigest; impo

jdk-求教-JDK6+TLSv1.2+Bouncy Castle Crypto API的具体实现方法

问题描述 求教-JDK6+TLSv1.2+Bouncy Castle Crypto API的具体实现方法 系统是JDK6,目前不太愿意升级JDK7,同时想支持tlsv1.2, 目前知道BC能支持,但是文档太少,求有类似经历的大神指点,需要 bc client连接 指定tlsv1.2的服务端实现案例 解决方案 https://www.bouncycastle.org/

求助:谁有基于Java Bouncy Castle的PGP加密解密示例

问题描述 谁有基于JavaBouncyCastle的PGP加密解密示例 解决方案 解决方案二:有没有人用过,在线等解决方案三:这里没高手哇解决方案四: 解决方案五:打不开呀...解决方案六:回家打开了,看来公司的网络给屏蔽了,多谢,我试试

如何在J2ME下利用Bouncy Castle做Elliptic Curve?

问题描述 如何在J2ME下利用BouncyCastle做EllipticCurve?BouncyCastle官方网上的J2me的package是不是没有EC的API在里面?有谁之前在J2ME下做过吗?希望分享下

对称加密算法-DES以及DESede算法

一.简述   对称加密算法就是能将数据加解密.加密的时候用密钥对数据进行加密,解密的时候使用同样的密钥对数据进行解密.   DES是美国国家标准研究所提出的算法.因为加解密的数据安全性和密钥长度成正比.des的56位的密钥已经形成安全隐患,在1998年之后就很少被采用.但是一些老旧的系统还在使用.因为这个des算法并没有被美国标准委员会公布全部算法,大家一致怀疑被留了后门.所以慢慢就被淘汰掉了.   后来针对des算法进行了改进,有了三重des算法(DESede).针对des算法的密钥长度较短以

消息摘要算法-SHA算法实现

简述 SHA算法分为一代和二代,这个是美国安全局发布的一系列的密码散列算法. 基于如下两点安全理由: 1.从消息摘要反推输入信息,从计算理论上来说很困难 2.想找到两组不同的消息对应到相应的消息摘要,从计算理论上来说一额很困难.对任何消息的变动,都有很高几率产生消息摘要迥异   不过这个算法已经不安全了,被中国的教授破解了.这个技术通常用来做数字签名.常见的就是B2B,B2C网站的支付.数据post到支付中心的时候,是发送一些加密串,同时带上签名.而这个签名可以被伪造.所以就不安全了.   常见

PHP+JS+rsa数据加密传输实现代码

JS端代码: 复制代码 代码如下: //文件base64.js: var b64map="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; var b64pad="="; function hex2b64(h) { var i; var c; var ret = ""; for(i = 0; i+3 <= h.length; i+=3) { c = pars

php下的RSA算法实现

/** Implementation of the RSA algorithm* (C) Copyright 2004 Edsko de Vries, Ireland** Licensed under the GNU Public License (GPL)** This implementation has been verified against [3] * (tested Java/PHP interoperability).** References:* [1] "Applied Cr

一个用JAVA开发的会话密钥程序

/* 运行本程序你需要下载JCE,Bouncy Castle的JCE with Provider and Lightweight API 网址是 http://www.bouncycastle.org 配置如下: 在WINDOWS中,你需要把下载的bcprov-jdk14-119.jar文件拷贝到两个地方: 一个在你安装的JDK目录中,比如说我的是C:\j2sdk1.4.0-rc\jre\lib\ext 另一个在你的JDK运行环境中,我的是在 C:\Program Files\Java\j2re