• 给jar包进行数字签名(2014-06-28记)


    整理一下两年前用到的一些资料。
    为了使Applet或者Java Web Start程序能够访问客户端本地资源,需要对Applet或者JWS程序jar包进行数据签名,当客户端打开Applet或者JWS程序的时候,会提示是否允许该程序访问本地资源,允许访问则程序就可以按照某种访问权限访问客户机的本地资源了。
    签名步骤:
    1、将程序打成jar包。

    2、 用keytool命令生存.store(密匙库)文件。
    (1)、keytool.exe文件在JDK安装目录下(C:Program FilesJavajdk1.6.0_33in)
            在DOC命令下输入:cd C:Program FilesJavajdk1.6.0_33in
    (2)、再输入指令:keytool -genkey -keystore mystore.store -alias mystore -validity 3650
            输入指令后回车,会提示输入store密码、名字与姓氏、组织单位名称、组织名称、所在城市或区域名称、州或省份名称、单位的两字母国家代码;依次输入完成最后提示是否正确,输入y确认信息,提示输入主密码,如果和keystore密码相同直接回车完成。这样在目录C:Program FilesJavajdk1.6.0_33in下面就生成了一个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 FilesJavajdk1.6.0_33in下生成了一个mystore.cert文件。
            注:mystore.store为第二步骤生成的密匙库名称、mystore也是第二步骤指定的别名、mystore.cert为生成的证书名称,可修改名称,但后缀不能修改。
     
    4、使用jarsinger工具签名jar包。
    (1)、 jarsigner.exe文件在JDK安装目录下(C:Program FilesJavajdk1.6.0_33in)
            在第2步骤 DOS窗口中输入指令:jarsigner -keystore mystore.store app.jar mystore
            回车,依次按提示操作直到结束。
               注:mystore.store为第二步骤生成的密匙库名称、app.jar为第1步骤打包的jar、mystore为提供者的名称,此处我们设置为我们的别名。
    到此已经给jar数字签名完成。

    还有一点要说的是Applet的权限问题, 要让Applet可以对本地的所有文件进行读写操作还需要配置C:Program FilesJavajdk1.6.0_33jrelibsecurity目录下的java.security文件如下:grant {permission java.security.AllPermission; }; 
     (完成1~3步骤后,以后要用当前的签名密匙库和证书签名其他的jar包只需要执行第4步骤即可。)
    附图:
     
  • 相关阅读:
    什么是method swizzling
    手机安全卫士——手机防盗页面
    手机安全卫士——在设置中心 自定义view和自定义属性
    手机安全卫士——主界面的开发
    手机安全卫士——闪屏页相关处理
    Android开发学习——自定义View
    C#开发学习——SqlHelper的应用
    基本的SQL语句
    C#开发学习——常用的正则表达式
    C#开发学习——存储过程
  • 原文地址:https://www.cnblogs.com/lyxy/p/5549973.html
Copyright © 2020-2023  润新知