a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 97|回复: 0

[基础知识] JAVA基础:核心技术在Applet中实现数字签名

[复制链接]
发表于 2012-8-4 12:37:27 | 显示全部楼层 |阅读模式
 筹备工作:当然是写一个Applet,其中涉及到对当地文件的读或写操浸染于测试目的。可以先予以执行,想必应该是会抛出java.security.AccessControlException的。   下面实现签名:(代码自己无须任何更改)
7 s- i# u7 m* z6 T; E  注:下面所使用的keytool或jarsigner呼吁只存在与Java2中,1.1中为javakey.且二者的平安模子有很年夜的差异,故务必首先确定你所使用SDK的版本。6 n+ j) b" z. R
  (1)使用keytool呼吁成立自己的密钥库并生成X.509自签名证书。' v& P4 M9 q: z' M
  下列的呼吁很长时刻都不使用了,具体参数什么的都忘完了,故只给出概略的参数,至于具体用法请参阅文档。
6 p! S; N2 F$ C; [7 Q5 Z' H, b  keytool -genkey -alias xiewuhen(这里似乎应该是密钥库的项目);2 Y9 B7 i, B2 i
  下面按照提醒一步步进行下去即可。5 b. s$ z2 Q; q, L
  (2)把Applet类文件打包成jar.
8 B, p: f8 Q7 X1 B! F% Y  (3)操作jarsigner签名jar文件。; h  D! G$ B+ W/ l$ i
  jarsigner applet.jar xiewuhen(这个applet.jar是你要签名的jar文件,xiewuhen是你前面在密钥库中生成的项目)0 l0 [7 v# M( ?* L) b$ K
  (4)搜检jar文件,在meta-inf目录下应该会呈现两个新文件,xiwehen.SF,xiwuhen.DSA.注重xiewuhen这个密钥项目只是事例,具体是什么依靠你最初使用keytool所生成的项目。其中SF文件是签名文件,是一个ASCII文件,保留了签名过程中使用的摘要算法。DSA文件是一个二进制文件,保留了签名和数字证书。最后一点就是文件扩展名具体是DSA仍是RSA取决你使用的签名算法,默认是DSA,可以在keytool参数中指定RSA算法。
9 O4 z  a- p3 R1 d  (5)若你是在单机且只有一个密钥库的机械上测试,下矣闽轨范可以省略因为这牵扯到证书的导入导出的问题。因为你签名方和验证方共用统一个密园そ那证书就无须导来导去了。但为了模拟真正的情形,所以仍是建议在多机上测试或成立多个密钥库。% {2 e; D; }' q. L8 x0 G
  (6)使用keytool -export -file -alias等一系列参数将证书导出,保留成crt名目,可以在流览器中设置装备摆设该证书。但我们暂不考虑这种情形。再次使用keytool -import -file -alias呼吁将证书导入验证方的密钥库。注重alias指定的别号务必和生成时的一模一样。
$ m7 I% [- e5 Q6 X. d1 g: A. k: `+ G. J# B  (7)改削策略文件。该文件位于主目录的/lib/security/中,是java.seucrity文件。至于你的Java主目录是什么,可以查看java.home系统属性。8 s$ k7 Y( z# h% W! I+ s6 `
  (8)如下改削策略:
8 D5 j0 F# |- q/ ]6 V. k  //指定的的密钥库路径。type今朝只能是JKS(Sun的默认实现),可以省略。2 T/ E, \9 y& E* D8 k3 N9 L& m3 P' ~
  keystore "keystoreURL","keystoreType"; grant signedBy "xiwuhen" codeBase "这里指定Applet的装入URL,若是文件URL须在前面加上file: 注重这里务必不成省略,否则Applet就会共享其他的策略了
+ ]2 a6 U1 E: C* U7 o  {
0 w, Y' Q% F. g/ A0 N  permission java.io.FilePermission "autoexec.bat","read"; //膳缦沔的权限只是一个例子,依据你的要求给出具体策略。
( t; c  v) @6 `- ]" q% [  };
1 f4 v" Y& Z9 i, N6 s, y) G  最后还有一点就是Applet可以有良多人挨次签名,若是那样的话,signedBy中的各个签名者之间是和的关系,而不是或。也就是说好比signedBy "a,b"那必需两人都签了名名才行,只有其一是不予经由过程的。7 H% x' g7 q7 L7 W/ x/ `2 f" e/ D
  关于证书的问题,因为这里我们使用的是自签名证书,所以只能用于测试目的,在真正的商务勾当中是不会有人信赖这种证书的(想必你也不会信赖来路不明的证书)。要想真正用于现实须向证书机构(CA)申请并采办数字证书。近似机构年夜的首要有Verisign,Thawte等。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-4-29 22:44 , Processed in 0.255891 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表