密码签名管理
在Java程序中Sun公司提供了两个管理加密签名的工具:keytool和jarsigner(JAR签名和验证工具)。jarsigner用于签名JAR文件,它用指定的符号连接指定的程序。keytool和jarsigner取代了JDK1.1中的javakey。第三个工具policytool在Java2中用于管理安全策略。
Jarsigner
同JDK一起发布的jarsigner应用程序完成两个功能:签名JAR文件,并校验JAR文件中的签名。JAR代表Java文档(Java Archive)。它实际上是一种支持签名的.zip文件。用jarsigner签名,就可以用证书保证文件内容的安全。
通常签名的JAR文件用于发布签名的Applet,但也可用于发布其他可信代码。一个软件开发人员可以分发签名的JAR文件,该文件直接从该开发人员那里获得,并且不会被第三方修改。
Applet通常被签名,以便授予一定特权,比如读写本地文件系统。
给JAR文件签名
1、打包jar的命令 jar cvf HelloWorld.jar HelloWorld.class
2、为该jar进行签名
- 生成密钥对(默认保存在用户目录的.keystore密钥库中)
keytool -genkey -alias mykey
jarsigner HelloWorld.jar mykey
3、校验jar文件 jarsigner -verify -verbose HelloWorld.jar
签名的JAR文件
一个JAR文件就是许多文件的简单集合。当一个JAR文件被签名,它就不再是原先JAR文件,而是它其中的部分或全部文件。也就是说签名的JAR文件不能保证其中所包括的所有东西是有用的。用Winzip之类工具可以在不破坏签名的情况下往签名的JAR文件中增加文件,而且修改其中的文件不会影响别的文件。签名必须保存在JAR文件中,并含有一些额外信息,如信息摘要、签名信息。这些信息用下述形式表示:
- 清单文件 META-INF\MANIFEST.MF(包括签名文件的名字和杂凑)
- 签名文件 META-INF\SIGNER.SF(包括清单中的摘要以及清单每个实体的摘要)
- 数字签名文件 META-INF\*.DSA(*.RSA)具体是哪一个取决于签名算法,它是.SF文件中使用PKCS#7格式的数字签名,这个文件使用二进制格式,所以是不可读的。
分享到:
相关推荐
Java安全性编程指南是Java开发者必备的知识领域,它涵盖了在开发Java应用程序时确保代码安全的一系列原则、最佳实践和工具。Java作为一个广泛使用的平台,其安全性对于保护用户数据、防止恶意攻击至关重要。本指南将...
Java安全性编程指南(PDG)是一本专注于帮助开发者理解和实践Java平台安全性的专业书籍。在Java编程中,安全性是至关重要的,因为这门语言被广泛应用于网络应用、企业系统以及嵌入式设备,其中可能涉及敏感数据和关键...
7. **安全性限制**:由于安全原因,Java Applet运行在沙箱环境中,不能访问本地文件系统或网络资源,除非用户明确授予权限。 8. **Java Web Start(JWS)**:随着Java Applet的逐渐淘汰,Java Web Start提供了一种...
Java语言Applet编程技术是Java开发中的一个古老但重要的概念,尤其在早期互联网时代,它被广泛用于创建交互式的网页元素。Applet是Java小应用程序,可以在支持Java的Web浏览器中运行,为用户提供动态和丰富的网络...
Java作为一种跨平台的编程语言,其安全性是其核心特性之一,但如果不正确地编写代码,可能会引入安全隐患。本指南将深入探讨以下几个关键知识点: 1. **Java安全模型**:Java的安全模型基于沙箱机制,它限制了代码...
第1章 servlet概述第2章 Java Web服务器第3章 第一个servlet 第4章 servlet链第5章 servlet-side Includes 第6章 会话管理第7章 安全性 第8章 HTML表单第9章 在servlet中使用JDBC 第10章 applet与servlet的通信第11...
Java是一种广泛使用的编程语言,它以其平台无关性和安全性而著称。在Java中,有两种主要的应用类型:Java Application(Java应用程序)和Java Applet(Java小程序)。这两种类型的程序虽然都是用Java编写的,但在...
10. **安全增强**:Java SE 6在安全方面也有所改进,增强了Java插件和Applet的安全性,以及对证书和密钥管理的改进。 通过深入研究"编程指南代码",开发者可以了解到这些特性的实际应用和最佳实践,同时也可以学习...
本书以大量的实例介绍了Java安全性编程方面的概念和技术,全书共计9章。经过精心设计,每个小节的实例着重说明一个问题,又相互贯穿和联系。内容涉及Java加密和解密,反编译和反反编译,对类、成员变量、方法的攻击...
Java的线程和Java Applet是Java编程中的两个重要概念,它们分别涉及并发执行和Web应用程序的执行环境。 **线程**在Java中是程序执行的最小单元,它允许程序在同一时间执行多个任务。Java内置对多线程的支持,使得...
但签名过程涉及到数字证书和安全性,需要额外学习。 8. **Java Web Start**:随着浏览器逐渐淘汰对Applet的支持,Java Web Start作为替代方案出现。它允许用户从网络启动已签名的Java应用程序,无需浏览器插件。 9...
这个"javaApplet学习简单例子"是一个关于计算贷款利率的实例,非常适合初学者理解Java Applet的工作原理和编程模式。 在Java Applet中,主要涉及以下几个核心知识点: 1. **Applet类**:所有的Java Applet都继承自...
Java+Applet实例讲解(分为1和2两部分)、Java+Applet实例编程、java+Applet登录、JavaApplet教程.pdf、JAVA_applet应用实例.ppt、JavaApplet编程技巧实例专辑、javaapplet例子.doc、Applet类.doc等教程。...
JavaApplet是Java技术在早期Web开发中的一种重要应用,它允许开发者创建可以在网页中运行的小型程序。这些小程序能够增强交互性,提供动态内容,比如游戏、图表、动画等。JavaApplet运行在用户的浏览器上,由Java ...
第八章Applet应用程序(java)主要涉及Java Applet的基础知识、运行原理、生命周期以及在HTML中的标记使用和多媒体技术的支持。以下是对这部分内容的知识点梳理。 知识点1:Web应用基础 1. Internet概述:它是由全球...
这个主题,"JavaApplet实例详细编程",聚焦于通过实践案例来学习和理解Applet的编程概念和实现方法。以下是关于Java Applet的一些核心知识点: 1. **Java Applet基本概念**:Java Applet是一种特殊的Java程序,它...