java-信息安全(十二)-数字签名【Java证书体系实现】

概述

信息安全基本概念html

数字证书

  数字证书就是互联网通信中标志通信各方身份信息的一串数字,提供了一种在Internet上验证通讯实体身份的方式,数字证书不是数字身份证,而是身份认证机构盖在数字身份证上的一个章或印(或者说加在数字身份证上的一个签名)。它是由权威机构——CA机构,又称为证书受权(Certificate Authority)中心发行的,人们能够在网上用它来识别对方的身份。java

参考地址

  http://snowolf.iteye.com/blog/391931git

  java-信息安全(五)-非对称加密算法RSAgithub

证书的制做[windows]

1.生成keyStroe文件

在命令行下执行如下命令:算法

keytool -genkey -validity 36000 -alias www.lhx.org -keyalg RSA -keystore d:\lhx.keystore

其中 
-genkey表示生成密钥 
-validity指定证书有效期,这里是36000天 
-alias指定别名,这里是www.lhx.org 
-keyalg指定算法,这里是RSA 
-keystore指定存储位置,这里是d:\lhx.keystore 

在这里我使用的密码为 123456 windows

控制台输出: tomcat

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

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

2.生成自签名证书[经过lhx.keystore导出证书]

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

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

其中 
-export指定为导出操做 
-keystore指定keystore文件 
-alias指定导出keystore文件中的别名 
-file指向导出路径 
-rfc以文本格式输出,也就是以BASE64编码输出 
这里的密码是 123456 

控制台输出:加密

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

固然,使用方是须要导入证书的! 
能够经过自签名证书完成CAS单点登陆系统的构建。

示例代码 

代码地址:https://github.com/bjlhx15/algorithm-sign.git

相关文章
相关标签/搜索