整理一下两年前用到的一些资料。
为了使Applet或者Java Web Start程序能够访问客户端本地资源,需要对Applet或者JWS程序jar包进行数据签名,当客户端打开Applet或者JWS程序的时候,会提示是否允许该程序访问本地资源,允许访问则程序就可以按照某种访问权限访问客户机的本地资源了。
签名步骤:
1、将程序打成jar包。
2、 用keytool命令生存.store(密匙库)文件。
(1)、keytool.exe文件在JDK安装目录下(C:\Program Files\Java\jdk1.6.0_33\bin)
        在DOC命令下输入:cd C:\Program Files\Java\jdk1.6.0_33\bin
(2)、再输入指令:keytool -genkey -keystore mystore.store -alias mystore -validity 3650
        输入指令后回车,会提示输入store密码、名字与姓氏、组织单位名称、组织名称、所在城市或区域名称、州或省份名称、单位的两字母国家代码;依次输入完成最后提示是否正确,输入y确认信息,提示输入主密码,如果和keystore密码相同直接回车完成。这样在目录C:\Program Files\Java\jdk1.6.0_33\bin下面就生成了一个mystore.store文件。
注:mystore.store为密匙库名称,可以随意改但后缀不能改;-alias后面的mystore为别名,可以改成自己的名称;-validity后面的3650表示的是10年(用这个证书签名的程序10年内有效)
3、 使用keytool.exe工具导出签名时用到的证书。
(1)、在DOS窗口执行命令:keytool -export -keystore mystore.store -alias mystore -file mystore.cert
命令执行成功后,会在目录C:\Program Files\Java\jdk1.6.0_33\bin下生成了一个mystore.cert文件。
        注:mystore.store为第二步骤生成的密匙库名称、mystore也是第二步骤指定的别名、mystore.cert为生成的证书名称,可修改名称,但后缀不能修改。
 
4、使用jarsinger工具签名jar包。
(1)、 jarsigner.exe文件在JDK安装目录下(C:\Program Files\Java\jdk1.6.0_33\bin)
        在第2步骤 DOS窗口中输入指令:jarsigner -keystore mystore.store app.jar mystore
        回车,依次按提示操作直到结束。
           注:mystore.store为第二步骤生成的密匙库名称、app.jar为第1步骤打包的jar、mystore为提供者的名称,此处我们设置为我们的别名。
到此已经给jar数字签名完成。
还有一点要说的是Applet的权限问题, 要让Applet可以对本地的所有文件进行读写操作还需要配置C:\Program Files\Java\jdk1.6.0_33\jre\lib\security目录下的java.security文件如下:grant {permission java.security.AllPermission; }; 
 (完成1~3步骤后,以后要用当前的签名密匙库和证书签名其他的jar包只需要执行第4步骤即可。)

附图:
 

给jar包进行数字签名(2014-06-28记)的更多相关文章

  1. JAR包数字签名与验证

    经签名的Jar包内包含了以下内容: 原Jar包内的class文件和资源文件 签名文件 META-INF/*.SF:这是一个文本文件,包含原Jar包内的class文件和资源文件的Hash 签名block ...

  2. Java JAR包

    JAR文件全称 Java Archive File,意为Java档案文件.JAR文件是一种压缩文件,也被成为JAR包. 运行程序时,JVM会自动在内存中解压要用的JAR包. 使用JAR包的优点:1.安 ...

  3. 时间“Thu Aug 14 2014 14:28:06 GMT+0800”的转换

    var date = "Thu Aug 14 2014 14:28:06 GMT+0800"; var va = DateTime.ParseExact(date, "d ...

  4. Flutter学习笔记(28)--使用第三方jar包

    如需转载,请注明出处:Flutter学习笔记(28)--使用第三方jar包 1.打开一个Flutter项目,点击编码窗口右上角的Open for Editing in Android Studio,这 ...

  5. spring无法扫描jar包的问题

    在日常开发中往往会对公共的模块打包发布,然后调用公共包的内容.然而,最近对公司的公共模块进行整理发布后.spring却无法扫描到相应的bean.折腾了好久,最终发现是认识上的误区. 2015-11-1 ...

  6. 把自己的程序打成jar包,让别人调用

     我们写程序的时候往往需要把自己的程序打包成jar包,给第三方调用.Eclipse让我们非常方便的可以导出jar包.但是当程序里需要用到res里的资源时,往往就会出现问题.因为统自动生成的R类如果被打 ...

  7. 02_MyBatis项目结构,所需jar包,ehcache.xml配置,log4j.properties,sqlMapConfig.xml配置,SqlMapGenerator.xml配置

     项目结构(所需jar包,配置文件) sqlMapConfig.xml的配置内容如下: <?xmlversion="1.0"encoding="UTF-8&qu ...

  8. 【Selenium-WebDriver实战篇】Eclipse上的maven使用JsonObject时,添加依赖后无法自动下载相应的jar包

    ==================================================================================================== ...

  9. JAR-使用JAVA命令编译打包一个可执行jar包

    一.开发一个演示项目 项目源代码开发 项目名称叫jar-package-example(其实只是一个文件夹, 用以将演示的所有文件夹和文件存放在其中, 没啥其它作用), 为了方便, 后文统一叫jar- ...

随机推荐

  1. Daily Scrum 10.29

    今天大家的工作做的还算不错,但是晚些时候遗憾的得知我们的吴文会同学生病住院了,所以她明天的任务暂时保留,再做调整.希望大家在努力学习工作的同时一定要注意身体啊! 下面是今天的Task统计:

  2. 集中式版本控制VS分布式版本控制

    CVS及SVN都是集中式的版本控制系统,而Git是分布式版本控制系统,集中式和分布式版本控制系统有什么区别呢? 集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所 ...

  3. Linux权限扩展

    在LINUX中我们创建文件或文件夹的时候系统总会为我们创建的对象分配一个默认的权限,那么今天我们就了解一下这个默认权限是怎么得来的?以及我们如何来改变系统的默认权限设置? 在LINUX系统中我们打开每 ...

  4. html只允许输入的数据校验,只允许输入字母汉字数字等

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. PHP中文函数顺序排列一数组且其序数不变

    函数Abs() 描述: mixed abs (mixed number); Returns the absolute value of number. If the argument number i ...

  6. 网站部署后Parser Error Message: Could not load type 的解决方案

    asp.net 的Webproject 项目是在64bit机上开发,默认选项发布后,部署到32bit的服务器上,出现Parser Error Message: Could not load type的 ...

  7. BizTalk 开发系列(四十) BizTalk WCF-SQL Adapter读取SQL Service Broker消息

    SQL Service Broker 是在SQL Server 2005中新增的功能.Service Broker 为 SQL Server 提供队列和可靠的消息传递,可以可用来建立以异步消息为基础的 ...

  8. document获取节点byId&byName

    <script type="text/javascript"> /* *需要:获取页面中的DIV节点: *思路: *通过docment对象完成.因为div节点有ID属性 ...

  9. SQL优化 1

    SQL_ID:fvdwtfv18yy0m 先看看sql的预估执行计划 select * from table(dbms_xplan.display_awr('fvdwtfv18yy0m')); sql ...

  10. Codeforces Round #378 (Div. 2) C D

    在实验室通宵 一边做水题一边准备随时躲起来以免被门卫大爷巡查发现..结果居然没来.. 本来以为可以加几分变个颜色..结果挂了CD...状态有点差...思维不太活跃 沉迷暴力不能自拔 D 给出n个长方体 ...