通过 java 工具来实现基本流程
工具介绍:
密钥和证书管理工具( Keytools )
它主要是负责 公 - 私钥对 、向C A 发证书申请、接受 CA 的回复、记录信任的公钥-实体 对应表, 维护密钥库 ( keystore ) , 命令基本形式是:
keytool command options
主要有如下几种命令:
* - certreq - 产生一个证书签名请求(Generate a Certificate Signing Request ,CSR)给 CA , 由它来认证自己的证书。
* -delete - 删除对应的密钥库的记录
* - export 将公钥证书输出到某个文件
* - genkey. 在密钥库中存入私钥- 公钥对, 后者保存在一个自签的证书中。
* --import 将一个信任的证书导入,或者是接到了CA 的回复,将该证书取代原来密钥库中自签的证书。
* keypasswd - 为某私钥分配密码
* -list - 列出密钥库中所有入口
* -storepasswd 给密钥库分配密码
.
Java文档处理工具(jar)
如果要对代码签名,需要先用 jar 将其打包,然后用jarsigner 来签名, 命令的基本格式是jar cf jar-file input-file(s)
Java 文档签名及验证工具 (jarsigner)
jarsigner 工具通过密钥库中的数据来对 jar 文件进行签名和认证;
策略编辑器 (policytool )
编辑系统的策略文件
使用代码签名
1.签名方大致流程如下所示 :
各个步骤通过前面的工具使用介绍,具体实现细节就不再描述了, 现在列出自己尝试时使用的几个命令:
* [ 生成私钥]keytool -genkey -alias signFiles -keypass 123456 -keystore store -storepass 123456
* [ 打包 ]jar cvf algrim.jar *.class
* [ 签名 ]jarsigner -keystore store -signedjar sAlgrim.jar Algrim.jar signFiles
* [生成证书] keytool -export -keystore store -alias signFiles -file cer.cer
2.接收方大致流程如下所示 :
直接运行代码是不允许的,只有先将证书引入本地的 keystore , 作为信任的证书插入;通过使用 Policy Tool 来配置相应的策略文件,通过两种方式来运行他:
1. 用 java -Djava.security.manager -Djava.security.policy= raypolicy -cp sCount.jar AppName 的形式
2. 通过配置浏览器使用的j ava.home\lib\security\java.security 文件,就可以带安全检查地运行该程序。
文件交换
在发送文件时,可以通过数字签名来保证文件的一致性和发送者的身份。步骤如下 :
发送者[基本流程同代码签名是一样的]
接收者
与代码签名的不同之处在于是通过 jarsigner 来验证的。
使用 JDK 1.2 的API 来构造自己的例程
基础 API
产生公钥和密钥对
* [ 得到密钥产生器]KeyPairGenerator keyGen = KeyPairGenerator.getInstance("DSA", "SUN");
* [ 初始化密钥产生器] SecureRandom random = SecureRandom.getI
请下载论文,论文或程序为doc或rar格式,只上传部分目录查看,如果需要此论文或程序,请点击-下载论文,下载需要资料或是论文。