3步注册成为你的数字证书 确保你机器上安装了jdk
首先进入一个新建立空文件夹,把需要注册的打成jar的jar包放入这个文件夹,然后cmd键入该文件夹,然后输入下面的命令
1. 生成一个注册文件
keytool -genkey -alias lams -keypass 123456 -storepass 123456 -validity 1277 -keystore .\lams
这时候会提示让你输入一些信息,国家公司之类的信息. 1277是天数
2验证
keytool -list -keystore .\lams -storepass LAMS@)!!
3 注册jar
jarsigner -verbose -keystore .\lams uupload.jar lams
会让你输入上面的密码123456
这是发现你的jar文件里面的里面 META-INF文件夹下面多了几个文件.然后MAINIFEST.MF也改变了.这时候说明注册完成了.
下面是 keytool 和 jarsigner 命令说明: 都是在网上找的,如果是简单的applet上面的足够了
keytool :
-genkey 在用户主目录中创建一个默认文件".keystore",还会产生一个mykey的别名,mykey中包含用户的公钥、私钥和证书
-alias 产生别名
-keystore 指定密钥库的名称(产生的各类信息将不在.keystore文件中
-keyalg 指定密钥的算法
-validity 指定创建的证书有效期多少天
-keysize 指定密钥长度
-storepass 指定密钥库的密码
-keypass 指定别名条目的密码
-dname 指定证书拥有者信息 例如: "CN=sagely,OU=atr,O=szu,L=sz,ST=gd,C=cn"
-list 显示密钥库中的证书信息 keytool -list -v -keystore sage -storepass ....
-v 显示密钥库中的证书详细信息
-export 将别名指定的证书导出到文件 keytool -export -alias caroot -file caroot.crt
-file 参数指定导出到文件的文件名
-delete 删除密钥库中某条目 keytool -delete -alias sage -keystore sage
-keypasswd 修改密钥库中指定条目口令 keytool -keypasswd -alias sage -keypass .... -new .... -storepass ... -keystore sage
-import 将已签名数字证书导入密钥库 keytool -import -alias sage -keystore sagely -file
导入已签名数字证书用keytool -list -v 以后可以明显发现多了认证链长度,并且把整个CA链全部打印出来。
jarsigner :
下面列出并说明了各种 jarsigner 选项。注意:
- 所有选项名前都有一个减号 (-)。
- 选项可以以任何次序提供。
- 斜体项(选项值)代表必须提供的实际值。
-
-keystore
、-storepass
、-keypass
、-sigfile
和 -signedjar
选项仅在为 JAR 文件签名时相关,而不是在校验已签名的 JAR 文件时。同样,别名仅在为 JAR 文件签名时在命令行中指定。
-keystore
url
指定密钥仓库的 URL。缺省值是用户的宿主目录中的 .keystore 文件,它由系统属性“user.home”决定。
签名时需要密钥仓库,因此如果没有缺省的(或要使用非缺省的)密钥仓库,就必须明确指定一个。
校验时不需要密钥仓库,但如果指定了一个,或存在缺省的,且 -verbose
选项也被指定了,则将输出该密钥仓库中是否包含了用于校验 JAR 文件的证书的附加信息。
注意: -keystore
参数实际上可以是指定的文件名(及路径)而不是 URL,这种情况下它将当作“file:” URL. 也就是说,
-keystore filePathAndName
被当作等价于
-keystore file:filePathAndName
-storetype
storetype
指定要被实例化的密钥仓库类型。默认的密钥仓库类型是安全属性文件中 "keystore.type" 属性值所指定的那个类型,由 java.security.KeyStore
中的静态方法 getDefaultType
返回。
-storepass
password
指定访问密钥仓库所需的口令。这仅在签名(不是校验)JAR 文件时需要。在这种情况下,如果命令行中没有提供 -storepass
选项,用户将被提示输入口令。
注意: 口令不应在命令行或脚本中指定,除非是为了测试,或在安全系统中。并且,在口令提示下键入口令时将显示出键入的字符,因此不要在其它人面前键入。
-keypass
password
指定用于保护密钥仓库项(由命令行中指定的别名标出)的私钥的口令。使用 jarsigner 为 JAR 文件签名时需要该口令。如果命令行中没有提供口令,且所需的口令与密钥仓库的口令不同,则将提示用户输入它。
注意: 口令不应在命令行或脚本中指定,除非是为了测试,或在安全系统中。并且,在口令提示下键入口令时将显示出键入的字符,因此不要在其它人面前键入。
-sigfile
file
指定用于生成 .SF 和 .DSA 文件的基本文件名。例如,如果 file 为“DUKESIGN”,则生成的 .SF 和 .DSA 文件将被命名为“DUKESIGN.SF”和“DUKESIGN.DSA”,并将放到已签名的 JAR 文件的“META-INF”目录中。
file 中的字符应来自“a-zA-Z0-9_-”。也就是说,只允许字母、数字、下划线和连字符。注意: .SF 和 .DSA 文件名中小写字母将被转换为大写字母。
如果命令行中没有 -sigfile
选项,则 .SF 和 .DSA 文件的基本文件名将是命令行中指定的别名的前 8 个字符,并全部被转换为大写。如果别名少于 8 个字符,将使用整个别名。如果别名中包含签名文件名所不允许的字符,则形成文件名时这样的字符将被转换为下划线 ("_")。
-signedjar
file
指定用于已签名的 JAR 文件的名称。
如果命令行中没有指定名称,将使用输入的 JAR 文件名(要签名的 JAR 文件名);换句话说,该文件将被签名 JAR 文件覆盖。
-verify
如果它出现在命令行中,则指定的 JAR 文件将被校验,而不是签名。如果校验成功,将显示“jar verified”。如果试图校验未签名的 JAR 文件,或校验被不支持的算法(例如未安装 RSA 提供者时使用的 RSA)签名的 JAR 文件,则将有如下显示: "jar is unsigned. (signatures missing or not parsable)"
可以校验使用 jarsigner 或 JDK 1.1 javakey 工具或共用二者签名的 JAR 文件。
有关校验的详细信息,参见 JAR 文件校验。
-certs
如果它与 -verify
和 -verbose
选项一起出现在命令行中,则输出将包括 JAR 文件的每个签名人的证书信息。该信息包括
- 验证签名人公钥的证书的类型名(保存在 .DSA 文件中)
- 如果该证书是 X.509 证书(更准确地说是
java.security.cert.X509Certificate
的实例): 签名人的特征名
密钥仓库也被检查。如果命令行中没有指定密钥仓库值,缺省密钥仓库文件(如果有)将被检查。如果签名人的公钥证书与密钥仓库中的项匹配,则还将显示下列信息:
- 该签名人的密钥仓库项的别名,在圆括号中。如果该签名人实际上来自于 JDK 1.1 身份数据库而不是密钥仓库,则别名将显示在方括号而不是圆括号中。
-verbose
如果它出现在命令行中,则代表“verbose”模式,它使 jarsigner 在 JAR 签名或校验过程中输出额外信息。
-internalsf
过去,JAR 文件被签名时产生的 .DSA(签名块)文件包含一个同时产生的 .SF 文件(签名文件)的完整编码副本。这种做法已被更改。为了减小输出 JAR 文件的整个大小,缺省情况下 .DSA 文件不再包含 .SF 文件的副本。但是如果 -internalsf
出现在命令行中,将采用旧的做法。该选项主要在测试时有用;实际上不应使用它,因为这样将消除有用的优化。
-sectionsonly
如果它出现在命令行中,则 JAR 文件被签名时生成的 .SF 文件(签名文件)将不包括含有整个清单文件的散列的头。它仅包含 与 JAR 中每个单独的源文件相关的信息和散列,如签名 (.SF) 文件所述。
缺省情况下,该头将作为一种优化手段添加。只要该头存在,则无论何时 JAR 被校验,都将首先检查该头中的散列是否真正与整个清单文件的散列匹配。如果匹配,校验将进行下一步。如果不匹配,则有必要执行一个次优的校验,检查 .SF 文件中每个源文件信息部分中的散列是否等于清单文件中相应部分的散列。
有关的详细信息,参见 JAR 文件校验。
该选项主要在测试时有用;实际上不应使用它,因为这样将消除有用的优化。
-J
javaoption
将指定的 javaoption 串直接传递到 Java 解释器。((jarsigner 实际上是解释器的一个 “wrapper”)。该选项不应含有任何空格。它有助于调整执行环境或内存使用。要获得可用的解释器选项的清单,可在命令行键入 java -h
或 java -X
。
分享到:
相关推荐
- 数字签名:为了突破安全限制,开发者可以对Applet进行数字签名,以增加信任度。 7. **Applet的替代技术** - JavaFX:Oracle推荐的现代Java GUI开发框架,提供更丰富的图形和媒体功能,支持桌面和Web应用程序。 ...
由于Applet是在用户的本地环境中运行,因此可以提供更流畅的用户体验,但需要注意的是,Applet的安全性相对较低,需要通过数字签名等方式增强其可信度。 聊天系统的核心功能包括: 1. 用户注册与登录:用户需要先...
- 安全性:JavaCard提供了高级的安全特性,如加密和数字签名,确保数据的机密性和完整性。 总的来说,“JavaCard应用程序开发三步曲”涵盖了从理解JavaCard平台,到编写、封装Applet,再到部署和测试的全过程。这个...
在客户端,Applet的使用涉及到HTML嵌入、数字签名以及安全策略的设置。Applet需要与服务器进行交互,获取用户信息、发送请求以及展示聊天界面。Java Swing或JavaFX库可以用来创建用户友好的图形界面,提供聊天窗口、...
这通常通过设置`<applet>`标签的`codebase`和`archive`属性,以及使用数字签名来实现。 需要注意的是,由于Java Applet的安全性和兼容性问题,现代Web开发中已经很少使用Applet。现在,更多地推荐使用Java Web ...
案例2 MD5的Javabean实现 案例3 用公钥计算消息摘要的验证码 案例4-1 Java中的数字证书的生成及维护方法 案例4-2 数字证书的签发(签名) 案例4-3 利用数字证书给Applet签名 案例5 利用DES加密...
5. **智能卡安全**:智能卡的安全特性,如访问控制、数据加密和数字签名,是其应用的核心。开发者需要学习如何利用这些特性来保护敏感信息。 6. **智能卡应用实例**:书中可能通过实际案例,如SIM卡应用、电子钱包...
3. **安全机制模块**:实现数据加密、数字签名等功能,确保数据的安全传输。 4. **行业标准接口模块**:根据VISA等组织定义的行业标准,提供标准化的接口,简化开发过程中的安全性实现。 通过构建这样一个通用的...
##### 4.2 applet数字签名技术 - **数字签名**:确保Applet的安全性和完整性。 - **实现方式**:使用Java的数字签名工具(jarsigner)为Applet生成数字证书。 ##### 4.3 如何调用java外部程序 - **Runtime....
关于数字签名:产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥...
Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码,系统相关,数字签名,数字证书 Java 数字签名、数字证书的相关实例。 关于数字签名:产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用...
关于数字签名:产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥...
表达式`<%=2+3%>`将会输出数字`5`。 ### 7. firePropertyChange方法 - **方法原型**:`firePropertyChange`方法用于通知所有监听器某个属性发生了改变。正确的方法签名应该是**B**:`public void ...
[目录]为什么Applet修改后在浏览器中不发生变化 3. [目录]Java中的类型转换 4. [目录]怎样找到编译时缺少的类 2. [目录]Java疑难解答 1. [目录]Java原理问题 1. [目录]Java中是指针还是...
- **认证Applet**:通过数字签名验证Applet的来源。 #### 十一、编写数据库驱动程序 最后,书中还涉及了如何编写自己的JDBC驱动程序,虽然这部分内容对于大多数开发者来说不是必需的,但对于那些希望深入了解JDBC...
关于数字签名:产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥...
关于数字签名:产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥...
Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码,系统相关,数字签名,数字证书 Java 数字签名、数字证书的相关实例。 关于数字签名:产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用...
该项目的主要特点是文件体积较大(可达50MB),文件数量较多(大约15个),同时还要求较高的数据安全性,包括数字签名和数据加密。考虑到这些需求,项目组决定采用FTP协议而非HTTP协议作为传输手段,因为FTP协议在...