1.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指定)
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.将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将会和类文件进行对比,确保文件没被人篡改过
4.好了,现在的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"这句话。
好了,最激动人心的时刻到来了,请用浏览器打开这个网页,会看到一个安全提示。点击运行按钮,即可看到正确的执行了操作,在用户的C盘上创建了一个文件!很好,我们可以为所欲为了,像写普通Java应用那样来写Applet了!如果点击取消按钮,那很自然的无法创建文件,用户拥有选择权,当然,如果是企业的客户,自然都是让他们选择运行按钮。其实通过这里读者也可以注意到,现在好多网站(例如视频分享的网站等),都会提示您下载一些插件提供增强的功能,然而,他们的数字证书和这里的一样,都是自己造的(其实就是伪造),所以,装完后并不能保证是否夹杂了病毒或者恶意代码,所以读者上网时千万要谨慎识别,不要随意点击在线安装或者运行软件。
分享到:
相关推荐
在JavaApplet中,数字签名是一个至关重要的概念,它确保代码的完整性和来源的可信性,防止恶意篡改。本篇文章将深入探讨JavaApplet的数字签名方法以及如何使用打包签名工具JavaAutoPlug.exe来实现这一过程。 首先,...
在Java中,对Applet签名意味着使用私钥对Applet的字节码进行加密,然后使用对应的公钥验证。这使得用户可以检查Applet是否来自可信的源,并决定是否给予额外的权限。 **签名步骤** 1. **获取证书**:首先,你需要一...
恶意用户可能通过诱骗用户下载并安装包含恶意代码的Applet,或者攻击者可能试图绕过签名验证。因此,用户应该只信任来自可靠来源的签名Applet,并保持Java运行时环境的更新,以防止已知安全漏洞被利用。 总的来说,...
具体而言,Applet的创建者使用私钥对Applet进行签名,然后用户端(通常是浏览器)使用相应的公钥验证签名的有效性。 - **数字签名的必要性**:由于Java Applet运行于用户的计算机上,因此需要采取额外的安全措施来...
为了打破这些限制并确保代码的来源可信,Java引入了“Applet签名”这一概念。 Applet签名是Java平台为了保护用户安全而实施的一项机制,它允许开发者证明其代码的来源和未被篡改。签名过程涉及到了公钥加密技术,...
这个"javaapplet"压缩包可能包含了用于教学或示例的Applet程序,适合初学者了解和学习。下面我们将深入探讨Java Applet的相关知识点。 **一、Java Applet的基本概念** Java Applet是一种特殊的Java程序,它被嵌入...
本教程将详细介绍在Java 2环境下,如何为Applet进行数字签名,以及相关的Java知识。 一、Java Applet与数字签名 1. Java Applet:Java Applet是一种可以在Web浏览器中运行的Java小程序。它们通过Java插件(现在已...
1. **身份验证**:签名验证了Applet是由声称的发布者创建的,因为只有拥有相应私钥的开发者才能生成有效的签名。 2. **完整性检查**:数字签名能够检测到Applet在传输过程中是否被篡改,确保用户接收的代码未经修改...
- 如果需要更多的权限,可以使用签名的Applet,但必须谨慎处理,因为这可能会带来潜在的安全风险。 6. **现代替代方案** - 随着技术的发展,Java Applet的重要性已逐渐下降,现代浏览器不再支持Java Applet。 - ...
未签名或签名验证失败的Applet可能会被浏览器拒绝运行。 4. **权限问题**:由于安全限制,Applet运行在沙箱环境中,不能访问本地文件系统或网络资源。如果Applet试图执行超出其权限的操作,会抛出异常。 5. **编译...
Applet签名制作是Java开发中的一个重要环节,尤其是在早期的Web应用程序中,Applet是一种常见的用于在浏览器中执行Java代码的小程序。为了确保Applet的安全性和防止恶意代码的运行,Java引入了签名机制。本文将详细...
- **数字签名和证书**:Applet可以使用数字签名来验证其来源,以防止恶意代码。同时,Servlet服务器也可以使用数字证书来建立信任连接。 - **身份验证与授权**:实施用户身份验证机制,例如HTTP基本认证、表单认证...
在IT领域,尤其是在Java开发中,Applet签名与JAR文件签名是确保代码来源可信、保护用户免受恶意代码侵害的重要环节。以下是对标题“applet签名方法”以及描述“applet签名 jar签名工具”的详细解析,涵盖相关知识点...
五、Applet签名和安全问题 由于Applet运行在用户机器上,可能会对系统安全构成威胁。因此,从Java 2 SDK 1.2开始,引入了数字签名的概念,以验证Applet的来源和授权。未签名的Applet可能受到浏览器的安全限制,如...
如果签名验证通过,则允许Java小程序在客户端执行。这种方法既保障了程序的安全性,又能够赋予经过认证的Java程序更多的执行权限。 本文还提到了数字签名在解决纠纷方面的作用,即提供了第三方仲裁机构验证签名有效...
为了确保Applet的安全性,避免恶意代码对用户系统造成损害,Java引入了Applet签名机制。通过签名,不仅可以验证Applet的来源,还可以赋予其访问客户端资源的权限。 #### 二、Applet签名的重要性 1. **验证来源**:...
Applet是Java的一个早期特性,允许在Web浏览器中运行小型的Java程序,而Swing则是Java GUI(图形用户界面)工具包,提供了丰富的组件来构建桌面应用程序。 描述中提到“Applet与Swing编写一个简单的HTML浏览器”,...
总结来说,要超越Java Applet的安全限制,开发者可以为Applet的代码进行数字签名,然后配置Policy文件,赋予Applet特定的权限,如访问本地文件系统或特定网络资源。这种方式使得Applet可以在用户同意的情况下执行更...
因此,`mupload`可能使用了数字签名来验证Applet的来源,防止恶意代码的注入。同时,Applet的权限控制也是关键,通过设置`applet.policy`文件,我们可以限制Applet对本地资源的访问,只允许其进行必要的文件读写操作...
3. **权限管理**:在Java Web Start或Applet等场景下,签名的JAR文件可以获得更多的系统权限,例如读写文件、访问网络等。 4. **防止中间人攻击**:通过证书链验证,确保数据在传输过程中未被第三方篡改。 实现Java...