applet 签名

    1.首先启动 CMD 命令行工具,然后进入到当前的项目目录,运行下面的命令:

keytool -genkey -dname "cn=BeanSoft Studio, ou=Java Software, o=BeanSoft Studio, c=China" -alias beansoft -keypass beansoft -storepass beansoft -validity 365 -keystore .\beansoft

 

这段命令将会创建一个数字文件放在当前目录的二进制文件beansoft 中。该证书的别名是 beansoft (通过 -alias 指定),密钥的密码是 beansoft-keypass 命令指定),存储密钥的文件密码也是 beansoft- storepass 命令指定),证书的有效期是 365 天(通过 -validity 指定),

并把它存储到密码文件 beansoft 中。这段命令执行后,没有出错信息的话即是创建成功。另外,如果是实际的项目的话,最好将两个密码设置成安全级别比较高的密码。除了这样来生成一个密钥文件外,还可以用 KeyTool 以交互的方式来生成(比较推荐初学者使用这种方式):

keytool –genkey

随后,会提示您输入必须或者可选的内容。

 

       2.随后我们可以检查下这份证书文件的内容,执行下面的命令:

keytool -list -keystore .\beansoft -storepass beansoft

会输出信息:

Keystore 类型: JKS

Keystore 提供者: SUN

 

您的 keystore 包含 1 输入

 

beansoft, 2008-5-7, PrivateKeyEntry,

认证指纹 (MD5) 16:15:A0:47:92:96:29:96:93:5D:F0:76:F7:D0:2C:84

。这说明证书没有问题。

 

     3.  有时可能需要导出证书供人使用,可以执行下面的命令:

keytool -export -keystore .\beansoft -storepass beansoft -file beansoft.cer -alias beansoft

随后会生成一个beansoft.cer ,不过在这里对 Applet 签名是不需要这样做的,只有在做 SSL 开发时,才能用得到它。

 

      4. 随后,请读者按照 16.1.3.1 JAR 文件一节所介绍的内容,将 Applet 的类文件打包成 jar 文件,名为 applets.jar ,放在项目的根目录下。接着就进入最关键的,对 JAR 文件进行签名了,键入下列命令:

jarsigner -verbose -keystore .\beansoft applets.jar beansoft

接着提示信息为:

输入密钥库的口令短语:beansoft 按下回车,即可看到签名过程:

   正在添加: META-INF/MANIFEST.MF

   正在添加: META-INF/BEANSOFT.SF

   正在添加: META-INF/BEANSOFT.DSA

   正在添加: applets/

  正在签名: applets/FileOperationApplet.class

  正在签名: applets/LifeCycleApplet.class

  正在签名: applets/MyApplet.class

  正在签名: applets/usb.jpg

可以看到META-INF 目录下将会多出两个数字指纹文件,运行的时候 JVM 将会和类文件进行对比,确保文件没被人篡改过。

       好了,现在的 applets.jar 已经今非昔比了,它是个被签名过的 JAR ,怎么使用它呢?需要在它所在的同一目录下,即项目根目录下,新建一个 HTML 文件,代码清单如下:

FileOperationAppletSigned.html

<html>

<body>

<applet code=applets.FileOperationApplet.class archive="applets.jar" width="200" height="200" >

</applet>

</body>

</html>

唯一的不同,就是多了粗斜体的archive="applets.jar" 这句话。

       好了,最激动人心的时刻到来了,请用浏览器打开这个网页,会看到一个安全提示,如图 18.7 所示。点击运行 按钮,即可看到正确的执行了操作,在用户的 C 盘上创建了一个文件!很好,我们可以为所欲为了,像写普通 Java 应用那样来写 Applet 了!如果点击取消 按钮,那很自然的无法创建文件,用户拥有选择权,当然,如果是企业的客户,自然都是让他们选择运行按钮。其实通过这里读者也可以注意到,现在好多网站(例如视频分享的网站等),都会提示您下载一些插件提供增强的功能,然而,他们的数字证书和这里的一样,都是自己造的(其实就是伪造 ),所以,装完后并不能保证是否夹杂了病毒或者恶意代码,所以读者上网时千万要谨慎识别,不要随意点击在线安装或者运行软件。

clip_image004

18.7 Applet 数字签名安全提示

 

       OK,罗罗嗦嗦的讲了这么老半天,就是希望给那些使用 Applet 的用户提供一个相对完整的实践方案,也许现在能在项目中用到 AWTSwing 的地方,也就剩下 Applet 了。接下来讨论在网页中使用 Applet 的进一步功能:参数传递和调用 JavaScript

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值