Applet数字签名:权限与本地资源访问指南

需积分: 9 1 下载量 192 浏览量 更新于2024-09-18 收藏 15KB DOCX 举报
本文主要介绍了如何使用Applet进行数字签名以及授予本地资源访问权限的过程。Applet是Java平台上的小应用程序,通常嵌入在Web浏览器中运行。数字签名是确保软件完整性和来源可信的重要手段。 首先,我们需要创建一个包含Applet代码的Jar包。在命令行中,通过`jar-cvf MyApplet.jar class`命令打包Applet类文件(如`jcomponent.FileReaderApplet.class`),这一步确保了代码的组织和管理。 接着,当将Applet嵌入到HTML页面中,使用`<APPLET>`标签指定Applet的属性,包括`CODEBASE`(定义代码的源位置)、`CODE`(引用Applet类)、`ARCHIVE`(包含的文件列表)以及宽度、高度等。例如: ```html <APPLET CODEBASE="." CODE="jcomponent.FileReaderApplet.class" ARCHIVE="MyClass.jar" NAME="TestApplet" WIDTH=400 HEIGHT=300 HSPACE=0 VSPACE=0 ALIGN=middle> </APPLET> ``` 接下来是关键的数字签名步骤: 1. 使用`keytool`工具生成密钥库(keystore),通过`keytool -genkey -keystore pepper.store -alias pepper`命令创建,同时设置密钥库密码。这一步确保了签名的安全性。 2. 为了签署Applet,执行`keytool -export -keystore pepper.store -alias pepper -file pepper.cert`,生成用于签名的证书文件。 最后,为了赋予Applet访问本地资源的权限,我们需要创建一个策略文件`applet.policy`。在这个文件中,通过`signedBy`声明证书持有者(此处为`pepper`),并使用`java.io.FilePermission`允许指定权限,如读取所有文件: ```xml keystore "file:c:/admin/pepper.store", "JKS"; grants signedBy "pepper" { permission java.io.FilePermission "<ALLFILES>", "read"; }; ``` 将此策略文件添加到`${java.home}/jre/lib/security`目录下,这样就确保了只有经过签名的由`pepper`证书签署的Applet才能在用户的浏览器中运行,并且能够访问本地文件系统。 Applet做数字签名是提高其安全性和可信度的关键步骤,通过生成密钥库、证书、策略文件的管理,可以有效地控制Applet的权限,保护用户数据的安全。