为JAR签名需要两个工具:

1。用keytool来创建一个密匙(同时指定时效,多久会过期,默认只给 6个月)

2。用JARSigner用此密匙为JAR签名。

可以用同一个密匙来为多个JAR签名。

注意:大小写,签名一致,数字签名过期

为什么JAR要被签名?当用户启动一个Java Network Launching Protocol (JNLP,Java网络加载协议)文件或使用一个applet时,这个JNLP或applet可能请求系统提供一些非一般的访问。比如“文件打开”等进行这样的请求,就需要签名的JAR。

如果它是匿名的,系统会询问用户是否打算信任JAR的签署者。

1.首先生成签名文件,执行完成后,会在本目录内生成一个.keystore的密钥文件,2kByte大小。

yourProj是别名 keypass后面是密文密码,keystore密码是存储密码(要改变此文时需要输入确认此密码)

在dos命令提示状态下输入

C:/Documents and Settings/Administrator>keytool -genkey -alias yourProj -keypas

s yourCompany:Kouling

[回车],屏幕提示:

输入keystore密码:  yourCompany:yourPassword

您的名字与姓氏是什么?

[Unknown]:  ChinayourCompany

您的组织单位名称是什么?

[Unknown]:  ChinayourCompany.com

您的组织名称是什么?

[Unknown]:  Company

您所在的城市或区域名称是什么?

[Unknown]:  City

您所在的州或省份名称是什么?

[Unknown]:  Province

该单位的两字母国家代码是什么

[Unknown]:  CN

CN=ChinayourCompany, OU=ChinayourCompany.com, O=Company, L=City, ST=Province, C=CN 正确

吗?

[否]:  Y

2.为此密钥加 有效期限:7200天,将近20年. [嘿嘿,足够用了吧? 再也别想6个月]

输入命令:

C:/Documents and Settings/Administrator>keytool -genkey -alias yourProj -keypass yourCompany:Kouling -selfcert -validity 7200

屏幕提示:

输入keystore密码:  yourCompany:yourPassword

注意:-validity 7200 这个就是加时效的参数,7200单位是“天”。

检查密钥文件,输入命令:

C:/Documents and Settings/Administrator>keytool -list

屏幕提示:

输入keystore密码:  yourCompany:yourPassword

Keystore 类型: jks

Keystore 提供者: SUN

您的 keystore 包含 1 输入

yourProj, 2009-5-15, keyEntry,

认证指纹 (MD5): D4:9D:C7:3A:91:B4:30:6A:4D:50:F1:7C:E7:F5:B9:49

说明已经生成成功完成!

3.开始为Jar包文件签名

用JARsigner工具

切换到项目jar包所在目录

D:/yourPassword's--works/yourProj/webroot/app 的目录

输入dir可以看到:

2009-04-30  18:37

2009-04-30  18:37

2009-04-30  17:55            56,317 commons-logging-1.1.jar

2009-04-30  18:37           550,863 yourCompany-app-v1.0.1.jar

输入命令 :

jarsigner -verbose -certs commons-logging-1.1.jar yourProj

注:

verbose输出详细信息

certs表示验证此jar包时输出证书信息

屏幕提示:

输入密钥库的口令短语: yourCompany:yourPassword

输入 yourProj 的密钥口令: yourCompany:Kouling

正在添加: META-INF/YOURPROJ.SF

正在添加: META-INF/YOURPROJ.DSA

正在添加: org/

正在添加: org/apache/

正在添加: org/apache/commons/

正在添加: org/apache/commons/logging/

正在添加: org/apache/commons/logging/impl/

。。。

。。。

接着输入:

D:/yourProj/webroot/app>jarsigner -verbose -certs yourCompany-app-v1.0.1.jar yourProj

屏幕提示:

输入密钥库的口令短语: yourCompany:yourPassword

输入 yourProj 的密钥口令: yourCompany:Kouling

正在添加: META-INF/YOURPROJ.SF

正在添加: META-INF/YOURPROJ.DSA

正在添加: org/

注意:重要签名给yourCompany-app-v1.0.1.jar文件,但它使用了另外的几个commonsxxxx包,也要签名,否则将来使用时会提示签名不一致的错误!

4。打开jar包文件的 META-INF目录可以看到

yourProj.SF

yourProj.DSA

以及被扩充的MANIFEST.MF文件

表明已经加入了签名文件

java jnlp 签名_JAVA JNLP组件数字签名制作步骤相关推荐

  1. 运行java提示未签名_java – JNLP:在签名代码中加载未签名的代码

    我们在克服Java webstart的混合代码错误时遇到了困难.总之,我们有我们的主要JNLP文件,我们已经签署了它直接加载的所有代码.我们已将all-permissions选项添加到主JNLP中.它 ...

  2. java禁止放大_java 所有组件缩放、放大

    public class TestResize{ public static void main(String args[]){ JFrame jf=new JFrame("test&quo ...

  3. java监控任务进度_Java Swing组件实现进度监视功能示例

    本文实例讲述了java swing组件实现进度监视功能.分享给大家供大家参考,具体如下: 实例一: import java.awt.event.actionevent; import java.awt ...

  4. java xml签名_Java使用DSA密钥对生成XML签名的方法

    本文实例讲述了Java使用DSA密钥对生成XML签名的方法.分享给大家供大家参考.具体实现方法如下: MainClass.java代码如下: import java.security.KeyPair; ...

  5. java mail 签名_java mail实现Email的发送,完整代码

    java mail实现Email的发送,完整代码 1.对应用程序配置邮件会话 首先, 导入jar com.sun.mail javax.mail 1.5.2 javax.mail.Session保存邮 ...

  6. java md5 签名_java md5签名

    签名算法 将所有请求参数(key,value 为一组),对数据结构按照 key 的升序,重新排序, 需要对 null 值进行过滤,需要将 boolean 型进行转换为 1 和 0 将排序后参数组合为新 ...

  7. java 函数签名_Java方法签名和接口

    我们知道方法签名只包括方法名称和参数列表,但不包括方法返回类型.那么为什么我为以下代码收到编译器错误,因为java不区分具有相同签名的方法. public class InterfaceTest im ...

  8. java jradiobutton使用_Java Swing组件单选框JRadioButton用法示例

    本文实例讲述了Java Swing组件单选框JRadioButton用法.分享给大家供大家参考,具体如下: JRadioButton是Swing中的单选框.所谓单选框是指,在同一个组内虽然有多个单选框 ...

  9. java rsa签名_Java使用RSA加密解密签名及校验

    由于项目要用到非对称加密解密签名校验什么的,于是参考<Java加密解密的艺术>写一个RSA进行加密解密签名及校验的Demo,代码很简单,特此分享! 一.项目截图 代码下载后,导入到ecli ...

最新文章

  1. 用心真诚对待,懂你的人
  2. 软件工程师安德烈·梅萨成功夺得世界小姐桂冠
  3. 打造自己的网络游戏[1]-Muddery安装与启动
  4. 智能车C车电机传递函数计算
  5. 小程序或者APP 自行使用TOKEN 实现登录会话保持
  6. SQL学习笔记之游标
  7. Atitit.每月数据采集与备份 v4
  8. Python 从入门到精通 全程最佳实现梳理
  9. c语言 t跳几个字节,int占几个字节(c语言)
  10. 小说全自动采集详细过程-支持各大开源小说CMS采集
  11. 淘宝秒杀服务器架构猜想
  12. C语言解释一下BA无标度网络
  13. 低无代码开发平台正在逐渐打破原有软件开发模式
  14. Intel HD Graphics
  15. ECNU 梵高先生 3529 JAVA
  16. MATLAB实现 有限长序列的线性卷积和圆周卷积
  17. 20160226.CCPP体系详解(0036天)
  18. 调度器锁rt_enter_critical() rt_exit_critical()
  19. Windows下Zookeeper启动zkServer.cmd报错闪退,找不到zoo.cfg文件
  20. 解决影驰固态硬盘SSD卡顿

热门文章

  1. ​iPhone 13发布时间曝光;中国博士创造新算法,提高步态精确识别身份的精度;iOS 15引入半身照的人物识别功能|极客头条...
  2. Mac不再丝滑?这些有用的方法了解一下
  3. 开源3问:95%的技术人都不知道的开源真相
  4. 你可能不知道的位运算技巧
  5. 不是吧?!程序员月入10w,原因竟然是这个......
  6. 移动电话之父第一个电话打给对手,起底现代移动通信崛起之路!
  7. 轻松搞定 SpringBoot 的邮件服务
  8. 机器学习项目必经十大磨难,看看自己渡过几劫了?
  9. 程序员面向软件开发时,如何成功?
  10. 虾米音乐的监控体系升级之路