打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
证书的使用

上一篇整理了关于RSA算法Java实现的一些代码,演示性质更重一些。

实际的进行的项目中,要求基于RSA公钥证书的TLS1.0通信,因此重新写了一些代码,重点的东西记录一下:

1、RSA keystore以及公钥证书的生成。

   a)RSA keystore的生成;

        对于PC环境,直接使用jdk自带的keytool工具即可,我安装的jdk7,keytool的路径是java_install_path/jre/bin,使用命令:
        keytool -genkey -validity 365 -alias RSA1024 -keyalg RSA -keystore d:\keystore.ks
       默认使用了java自带的密库,如果是需要用在android上,则需要使用bks密库,安装步骤如下:
       i)bks密库bcprov-jdk16-146.jar的下载链接:http://www.bouncycastle.org/latest_releases.html
       ii)bcprov-jdk16-146.jar存放至java安装路径/jre/lib/ext;
       使用如下命令生成bks密库的key store:
       keytool -genkey -validity 365 -alias RSA1024 -keyalg RSA -keystore d:\keystore.ks -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider

    b)RSA 公钥证书的导出

        JKS key store:
            keytool -export -keystore d:\keystore.ks -alias RSA1024 -file d:\rsa1024.cer
        BKS key store:
            keytool -export -keystore d:\keystore.ks  -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider -alias RSA1024 -file d:\rsa1024.cer

2、Java代码实现的注意事项:

       i)修改java_install_path/jre/lib/security下的java.security以及java_install_path/jdk/jre/lib/security下的java.security,在
            security.provider.10=sun.security.mscapi.SunMSCAPI
            下面添加:
            security.provider.11=org.bouncycastle.jce.provider.BouncyCastleProvider
        ii)对于JKS key store,获取KeyStore实例时,使用如下语句:
            ks = KeyStore.getInstance(ksType);
            对于BKS key store,获取KeyStore实例时,使用如下语句:
            ks = KeyStore.getInstance(ksType, new org.bouncycastle.jce.provider.BouncyCastleProvider());
        iii)在导入bcprov-jdk16-146.jar后,如果对于new org.bouncycastle.jce.provider.BouncyCastleProvider()提示编译错误,需要修改:
            Window->Preferences->Java->Compiler->Errors/Warnings->Deprecated and restricted API->Forbidden reference选项,修改为                 Warning或Ignore即可

遗留的问题:

按照上述方法生成的bks key store和对应的公钥证书在PC的Eclipse+JDK1.6环境下都测试通过(JKS和BKS),包括Public/Private key的提取、公钥加密/私钥解密以及私钥签名/公钥验证,但是尚未在android环境下进行验证,这也是接下来要做的事儿。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
android 搭建https Server
Install & Use Bouncy Castle
用javascript与java进行RSA加密与解密
keytool生成证书(转)
RSA加密---从后台到客户端实现报文加解密
Java 结合 keytool 实现非对称加密和解密
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服