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 了!如果点击取消 按钮,那很自然的无法创建文件,用户拥有选择权,当然,如果是企业的客户,自然都是让他们选择运行按钮。其实通过这里读者也可以注意到,现在好多网站(例如视频分享的网站等),都会提示您下载一些插件提供增强的功能,然而,他们的数字证书和这里的一样,都是自己造的(其实就是伪造 ),所以,装完后并不能保证是否夹杂了病毒或者恶意代码,所以读者上网时千万要谨慎识别,不要随意点击在线安装或者运行软件。
18.7 Applet 数字签名安全提示
OK,罗罗嗦嗦的讲了这么老半天,就是希望给那些使用 Applet 的用户提供一个相对完整的实践方案,也许现在能在项目中用到 AWT , Swing 的地方,也就剩下 Applet 了。接下来讨论在网页中使用 Applet 的进一步功能:参数传递和调用 JavaScript 。
转自:http://jerryllx.iteye.com/blog/1051600
分享到:
相关推荐
在Java中,对Applet签名意味着使用私钥对Applet的字节码进行加密,然后使用对应的公钥验证。这使得用户可以检查Applet是否来自可信的源,并决定是否给予额外的权限。 **签名步骤** 1. **获取证书**:首先,你需要一...
在IT领域,尤其是在Java开发中,Applet签名与JAR文件签名是确保代码来源可信、保护用户免受恶意代码侵害的重要环节。以下是对标题“applet签名方法”以及描述“applet签名 jar签名工具”的详细解析,涵盖相关知识点...
### Applet签名过程详解 #### 一、引言 在Java技术栈中,Applet是一种在Web浏览器中运行的小应用程序,它可以嵌入到HTML页面中并由Java虚拟机执行。为了确保Applet的安全性,避免恶意代码对用户系统造成损害,Java...
Applet签名制作是Java开发中的一个重要环节,尤其是在早期的Web应用程序中,Applet是一种常见的用于在浏览器中执行Java代码的小程序。为了确保Applet的安全性和防止恶意代码的运行,Java引入了签名机制。本文将详细...
对打成jar包的applet进行签名的shell脚本,以保证能在页面上运行 1.GenLicense.sh为生成密钥文件的脚本 该脚本执行会生成.store和.cert两个文件 其中keytool命令中 -keypass changeit //签名的密码为"changeit" ...
可控制键盘按键 当applet用需要签名才有权限
本篇文章将深入探讨JavaApplet的数字签名方法以及如何使用打包签名工具JavaAutoPlug.exe来实现这一过程。 首先,理解数字签名的概念是必要的。在计算机安全领域,数字签名是对数据的一种加密验证,类似于纸质文档上...
2. **签名Applet**:使用私钥对Applet的字节码进行签名,这一步通常通过构建特定的命令行指令完成,如`jarsigner`工具。 3. **策略文件**:为了让浏览器信任签名的Applet并赋予其特定的权限,需要创建一个策略文件...
- **Code Signing**:即代码签名,通过为 Applet 签名,可以让 Applet 获得额外的权限,从而执行更复杂的操作,比如本例中的客户端打印。 #### 三、数字签名实现 为了使 Applet 在沙箱环境中安全地访问打印机,...
9. **Applet签名与数字证书**:为了突破安全限制,开发者可以对Applet进行签名,用数字证书证明其来源和安全性。 10. **Java小应用程序的替代技术**:随着Web技术的发展,Applet逐渐被Java Web Start、JavaFX、...
### 三、为Applet签名 为了确保Applet在客户端运行时的安全性,需要对其使用密钥进行数字签名。这一步骤可以确保Applet的完整性和来源可信度。 #### 1. 打包Applet 首先需要将编译好的Applet类文件打包成jar文件...
五、Applet签名和安全问题 由于Applet运行在用户机器上,可能会对系统安全构成威胁。因此,从Java 2 SDK 1.2开始,引入了数字签名的概念,以验证Applet的来源和授权。未签名的Applet可能受到浏览器的安全限制,如...
开发者需要考虑到这些限制,可能需要使用Java Web Start或Applet签名校验来提升权限。同时,优化Applet的性能和用户体验,如减少网络传输的数据量,优化UI响应速度等,也是必不可少的。 7. 示例代码分析 在“java写...
总结一下,Ant打包Applet并添加数字签名涉及到的主要步骤包括:配置Ant的build.xml文件,定义编译和打包的目标,设置JAR的manifest信息,使用`jarsigner`对JAR文件进行签名,并确保所有操作符合Java的安全策略。...
基于VTK开源软件包,结合Java applet编程,采用Java applet签名技术对程序进行签名认证。实现了Web方式下DICOM医学图像的三维重建,在重建的三维体上清晰显示出了人体器官的解剖结构,重建可在Internet上以Web模式跨...