当前位置:文档之家› 数字签名的制作方法整理-10页word资料

数字签名的制作方法整理-10页word资料

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 -keypass yourCompany:Kouling[回车],屏幕提示:输入keystore密码:yourCompany:yourPassword您的名字与姓氏是什么?[Unknown]:ChinayourCompany您的组织单位名称是什么?[Unknown]:ChinayourCompany您的组织名称是什么?[Unknown]:Company您所在的城市或区域名称是什么?[Unknown]:City您所在的州或省份名称是什么?[Unknown]:Province该单位的两字母国家代码是什么[Unknown]:CNCN=ChinayourCompany, OU=ChinayourCompany, O=Company, L=City, ST=Province, C=CN 正确吗?[否]:Y2.为此密钥加有效期限: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:yourPasswordKeystore 类型:jksKeystore 提供者: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 <DIR> .2009-04-30 18:37 <DIR> ..2009-04-30 17:55 56,317 commons-logging-1.1.jar2009-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.SFyourProj.DSA以及被扩充的MANIFEST.MF文件表明已经加入了签名文件Java 数字签名(Digital Signature)的批处理文件制作制作以下5个批处理文件:set.cmdset JDK_BIN=E:\"Program Files"\Java\jdk1.6.0_24\binset KEY_FOLDER=E:\DigitalSignaturekey.cmdcall set.cmd%JDK_BIN%\keytool -genkey-keystore %KEY_FOLDER%\cuckoo.keystore -alias cuckoo <KEY_ANSWER.lst%JDK_BIN%\keytool -selfcert-keystore %KEY_FOLDER%\cuckoo.keystore -alias cuckoo -validity 1000 < KEY_PWD.lst%JDK_BIN%\keytool -export-keystore %KEY_FOLDER%\cuckoo.keystore -alias cuckoo-file %KEY_FOLDER%\cuckoo.cer < KEY_PWD.lst注:KEY_ANSWER.lst和KEY_PWD.lst为输入重定向文件,从文本文件里读每行来回答命令行的问题,换行回车作为提交。

-validity后面跟签名有效期,以天为单位,默认是半年例:KEY_ANSWER.lstpasswordpasswordRen JianThe CUCKOO WorkgroupSun Yat-sen UniversityGuangzhouGuangdongCN是(后面加两个换行)KEY_PWD.lstpassword(换行)selfsign.cmd%JDK_BIN%\jarsigner -keystore %KEY_FOLDER%\cuckoo.keystore %1 cuckoo < KEY_PWD.lstsign.cmdcall set.cmdcall selfsign.cmd %1batchsign.cmdcall set.cmdfor %%N in (%1\*.jar) do call selfsign.cmd %%N使用说明:1. 在set.cmd中设置JDK_BIN文件夹位置和存放Key的文件夹位置2. 运行key.cmd产生key3. 单个文件签名命令: sign.cmd [jar]4. 对指定文件夹下所有文件批量签名:命令: batchsign.cmd [jar_folder]java keytool 使用总结(转)2019-08-16 15:34Keytool是一个Java数据证书的管理工具 ,Keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中在keystore里,包含两种数据:密钥实体(Key entity)——密钥(secret key)又或者是私钥和配对公钥(采用非对称加密)可信任的证书实体(trusted certificate entries)——只包含公钥ailas(别名)每个keystore都关联这一个独一无二的alias,这个alias通常不区分大小写JDK中keytool常用命令:-genkey 在用户主目录中创建一个默认文件".keystore",还会产生一个mykey的别名,mykey中包含用户的公钥、私钥和证书(在没有指定生成位置的情况下,keystore会存在用户系统默认目录,如:对于window xp系统,会生成在系统的C:\Documents and Settings\UserName\文件名为“.keystore”)-alias 产生别名-keystore 指定密钥库的名称(产生的各类信息将不在.keystore文件中)-keyalg 指定密钥的算法 (如 RSA DSA(如果不指定默认采用DSA))-validity 指定创建的证书有效期多少天-keysize 指定密钥长度-storepass 指定密钥库的密码(获取keystore信息所需的密码)-keypass 指定别名条目的密码(私钥的密码)-dname 指定证书拥有者信息例如: "CN=名字与姓氏,OU=组织单位名称,O=组织名称,L=城市或区域名称,ST=州或省份名称,C=单位的两字母国家代码"-list 显示密钥库中的证书信息 keytool -list -v -keystore 指定keystore -storepass 密码-v 显示密钥库中的证书详细信息-export 将别名指定的证书导出到文件 keytool -export -alias 需要导出的别名 -keystore 指定keystore -file 指定导出的证书位置及证书名称 -storepass 密码-file 参数指定导出到文件的文件名-delete 删除密钥库中某条目 keytool -delete -alias 指定需删除的别 -keystore 指定keystore -storepass 密码-printcert 查看导出的证书信息 keytool -printcert -file yushan.crt-keypasswd 修改密钥库中指定条目口令 keytool -keypasswd -alias 需修改的别名 -keypass 旧密码 -new 新密码-storepass keystore密码 -keystore sage-storepasswd 修改keystore口令 keytool -storepasswd -keystore e:\yushan.keystore(需修改口令的keystore) -storepass 123456(原始密码) -new yushan(新密码)-import 将已签名数字证书导入密钥库 keytool -import -alias 指定导入条目的别名 -keystore 指定keystore -file 需导入的证书下面是各选项的缺省值。

相关主题