快速业务通道

Java加密技术(八) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23

Java加密技术(八)

时间:2010-12-12

本篇的主要内容为Java证书体系的实现。

请大家在阅读本篇内容时先阅读 Java加密技术(四),预先了解RSA加密算法。

在构建Java代码实现前,我们需要完成证书的制作。

1.生成keyStroe文件

在命令行下执行以下命令:

Shell代码

keytool -genkey -alias www.zlex.org -keyalg RSA -keystore d:\zlex.keystore

其中

-genkey表示生成密钥

-alias指定别名,这里是www.zlex.org

-keyalg指定算法,这里是RSA

-keystore指定存储位置,这里是d:\zlex.keystore

在这里我使用的密码为 123456

控制台输出:

Console代码

输入keystore密码: 再次输入新密码: 您的名字与姓氏是什么?   [Unknown]: www.zlex.org 您的组织单位名称是什么?   [Unknown]: zlex 您的组织名称是什么?   [Unknown]: zlex 您所在的城市或区域名称是什么?   [Unknown]: BJ 您所在的州或省份名称是什么?   [Unknown]: BJ 该单位的两字母国家代码是什么   [Unknown]: CN CN=www.zlex.org, OU=zlex, O=zlex, L=BJ, ST=BJ, C=CN 正确吗?   [否]: Y 输入<tomcat>的主密码      (如果和 keystore 密码相同,按回车): 再次输入新密码:

这时,在D盘下会生成一个zlex.keystore的文件。

Java加密技术(八)(2)

时间:2010-12-12

2.生成自签名证书

光有keyStore文件是不够的,还需要证书文件,证书才是直接提供给外界使用的公钥凭证。

导出证书:

Shell代码

keytool -export -keystore d:\zlex.keystore -alias www.zlex.org -file d:\zlex.cer -rfc

其中

-export指定为导出操作

-keystore指定keystore文件

-alias指定导出keystore文件中的别名

-file指向导出路径

-rfc以文本格式输出,也就是以BASE64编码输出

这里的密码是 123456

控制台输出:

Console代码

输入keystore密码: 保存在文件中的认证 <d:\zlex.cer>

当然,使用方是需要注册证书的!

Ok,准备工作完成,开始Java实现!

Java紗畜室宝?伊?(3)

扮寂:2010-12-12

宥狛java旗鷹糞?泌和?Coder窃需 Java紗畜室宝?匯?

Java旗鷹

import java.io.FileInputStream; import java.security.KeyStore; import java.security.PrivateKey; import java.security.PublicKey; import java.security.Signature; import java.security.cert.Certificate; import java.security.cert.CertificateFactory; import java.security.cert.X509Certificate; import java.util.Date; import javax.crypto.Cipher; /**   * 屬慕怏周   *   * @author 塑彊   * @version 1.0   * @since 1.0   */ public abstract class CertificateCoder extends Coder {      /**       * Java畜埒垂(Java Key Store?JKS)KEY_STORE       */      public static final String KEY_STORE = "JKS";      public static final String X509 = "X.509";      /**       * 喇KeyStore資誼暴埒       *       * @param keyStorePath       * @param alias       * @param password       * @return       * @throws Exception       */      private static PrivateKey getPrivateKey(String keyStorePath, String alias,              String password) throws Exception {          KeyStore ks = getKeyStore(keyStorePath, password);          PrivateKey key = (PrivateKey) ks.getKey(alias, passw

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号