manifest.mf_manifest.mf文件编辑_manifest.mf websphete(5)

电脑杂谈  发布时间:2017-04-17 15:01:30  来源:网络整理

清单1.签名JAR中的Manifest和signature文件

Contents of signature file META-INF/MANIFEST.MF

Manifest-Version: 1.0

Created-By:1.3.0(Sun Microsystems Inc.)

Name: Sample.java

SHA1-Digest: 3DdYW8INICtyG8ZarHlFxX0W6g=

Name: Sample.class

SHA1-Digest: YJ5yQHBZ3SsTNcHJFqUkfWEmI=

Contents of signature file META-INF/JAMES.SF

Signature-Version: 1.0

SHA1-Digest-Manifest: HBstZOJBuuTJ6QMIdB90T8sjaOM=

Created-By:1.3.0(Sun Microsystems Inc.)

Name: Sample.java

SHA1-Digest: qipMDrkurQcKwnyIlI3Jtrnia8Q=

Name: Sample.class

SHA1-Digest: pT2DYby8QXPcCzv2NwpLxd8p4G4=

数字签名

一个数字签名是.SF签名文件的已签名版本。数字签名文件是二进制文件,并且与.SF文件有相同的文件名,但是扩展名不同。根据数字签名的类型-- RSA、DSA或者PGP --以及用于签名JAR的证书类型而有不同的扩展名。

Keystore

要签名一个JAR文件,必须首先有一个私钥。私钥及其相关的公钥证书存储在名为keystores的、有密码保护的中。JDK包含创建和修改keystores的工具。keystore中的每一个密钥都可以用一个别名标识,它通常是拥有这个密钥的签名者的名字。

所有keystore项(密钥和信任的证书项)都是用唯一别名访问的。别名是在用keytool -genkey命令生成密钥对(公钥和私钥)并在keystore中添加项时指定的。之后的keytool命令必须使用同样的别名引用这一项。

例如,要用别名“james”生成一个新的公钥/私钥对并将公钥包装到自签名的证书中,要使用下述命令:

这个命令序列指定了一个初始密码“jamespass”,后续的命令在访问keystore “jamesKeyStore”中与别名“james”相关联的私钥时,就需要这个密码。如果keystore“jamesKeyStore”不存在,则keytool会自动创建它。

jarsigner工具

jarsigner工具使用keystore生成或者验证JAR文件的数字签名。

假设像上述例子那样创建了keystore “jamesKeyStore”,并且它包含一个别名为“james”的密钥,可以用下面的命令签名一个JAR文件:

这个命令用密码“jamesKeyStorePass”从名为“jamesKeyStore”的keystore中提出别名为“james”、密码为“jamespass”的密钥,并对Sample.jar文件签名、创建一个签名的JAR -- SSample.jar。

jarsigner工具还可以验证一个签名的JAR文件,这种操作比签名JAR文件要简单得多,只需执行以下命令:

如果签名的JAR文件没有被篡改过,那么jarsigner工具就会告诉您JAR通过验证了。否则,它会抛出一个SecurityException,表明哪些文件没有通过验证。

还可以用java.util.jar和java.security API以编程方式签名JAR(有关细节参阅)。也可以使用像Netscape Object Signing Tool这样的工具。


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-41868-5.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 黄式浩
      黄式浩

      生产加工和运输流程啊

    • 井坂龙一郎
      井坂龙一郎

      现在国内投资环境是这样的

    热点图片
    拼命载入中...