为 Java 归档 (JAR) 文件产生签名,并校验已签名的 JAR 文件的签名。
结构
jarsigner [ options ] jar-file alias
jarsigner -verify [ options ] jar-file
说明
jarsigner 工具用于两个目的:
1.为 Java 归档 (JAR) 文件签名
2.校验已签名的 JAR 文件的签名和完整性
JAR 功能使得类文件、图像、声音和其它数字化数据可打包到单个文件中,以便更方便快捷地发布。名为 jar 的工具使开发者可以生成 JAR 文件(从技术上来说,任何 zip 文件都可看作为 JAR 文件,尽管由 jar 创建或由 jarsigner 处理时,JAR 文件还包含 META-INF/MANIFEST.MF 文件)。
数字签名是从一个实体(人、公司等)的某些数据(正被“签名”的数据)和私钥计算出来的位串。与手写的签名一样,数字签名有很多有用的特性:
1.其真实性可被校验,方法是使用与生成签名的私钥对应的公钥进行计算。
2.它不可能被伪造(假设私钥没有泄露)。
3.它是已签名数据的函数,因此不能被声明为其它数据的签名。
4.已签名的数据不能被修改;如果被修改了,签名将不再被校验为可信的。
为了给文件生成实体的签名,该实体首先必须与一对公/私钥相关联,以及一个或多个鉴别其公钥的证书。证书是来自一个实体的已被数字签署的声明,表示某个其它实体的公钥有特定值。
jarsigner 使用来自密钥仓库的密钥和证书信息为 JAR 文件生成数字签名。密钥仓库是私钥及其相关的 X.509 证书链(它鉴别相应公钥)的数据库。使用 keytool 实用程序来创建和管理密钥仓库。
jarsigner 使用实体的私钥创建签名。已签名的 JAR 文件包含(和其它东西一起)一份来自密钥仓库的公钥(它对应于用于为该文件签名的私钥)的证书副本。jarsigner 可以使用已签名的 JAR 文件中的(在其签名块文件中)证书来校验其数字签名。
现在 jarsigner 只能为由 JDK 的 jar 工具创建的 JAR 文件或 zip 文件签名(除了 JAR 文件还有一个 META-INF/MANIFEST.MF 文件以外,JAR 文件与 zip 文件一样。当 jarsigner 为 zip 文件签名时将自动创建这样的文件)。
jarsigner 的缺省行为是签名 JAR (或 zip)文件。使用 -verify 选项将其转换为校验已签名的 JAR 文件。
密钥仓库别名
所有密钥仓库实体都须通过唯一的别名来访问。
当使用 jarsigner 签名 JAR 文件时,必须为包含用于生成签名的私钥的密钥仓库实体指定别名。
例如,下面命令将使用与别名“duke”相关联的私钥为名为 “MyJarFile.jar”的 JAR 文件签名,该私钥存储在 C 驱动器的“working”目录下名为“mystore”的密钥仓库中)。因为没有指定输出文件,它将用签名后的 JAR 文件覆盖 MyJarFile.jar。
jarsigner -keystore C:\working\mystore -storepass myspass -keypass dukekeypasswd MyJarFile.jar duke
密钥仓库被口令保护,因此必须指定仓库口令(此处为“myspass”)。如果在命令行中没有指定,系统将给出提示。同样,密钥仓库中的私钥也被口令保护,因此必须指定私钥的口令(此处为 “dukekeypasswd”)。如果没有在命令行中指定,系统将给出提示。此口令与密钥仓库口令可能不同。
转自:http://hi.baidu.com/xidianliuy/blog/item/e067b6fb8786a9274e4aea57.html
分享到:
相关推荐
**JDK自带的jarsigner签名工具** 在Android应用开发中,为了确保应用程序的安全性和完整性,开发者需要对APK文件进行签名。JDK提供了一个名为`jarsigner`的工具,用于对Java类库和Android APK文件进行数字签名。本...
使用jarsigner对apk进行手动签名 jarsigner是JDK提供的针对jar包签名的通用工具,
签名过程是通过Java的Keytool和 jarsigner 工具实现的。使用 re-sign.jar,开发者需要提供原始APK、新的密钥库(包含签名密钥)以及相关的密码。这个工具方便那些需要更改APK签名,例如在不同渠道分发时,但不希望...
2. 重新签名:Android系统要求每个APK都需要有自己的签名,所以重新打包后的APK需要使用新的签名文件进行签名,可以使用 jarsigner 工具完成。 3. 对齐优化:使用 zipalign 工具进行对齐优化,提高应用性能。 4. ...
4. **签名新APK**:使用Java的 jarsigner 工具或专门的APK签名工具,使用你的私钥对APK进行签名。例如,使用jarsigner命令行工具,输入以下命令: ``` jarsigner -verbose -keystore myKeystore -alias myAlias -...
下载该文件后利用JDK中jarsigner工具生成签名文件 将位置定位在jdk的bin文件中,输入以下命名行: keytool -genkey -alias ChangeBackgroundWid get.keystore -keyalg RSA -validity 20000 -eystore ...
2. **签名APK**:使用Jarsigner工具,用私钥对APK文件进行签名操作。 3. **优化和ZIPalign**:签名后的APK需要进行ZIPalign优化,以提高运行效率。 4. **发布**:最后,将签名并优化过的APK上传到应用商店或其他分发...
传统的签名方法包括使用Java的keytool工具生成密钥库,然后使用apksigner或 jarsigner 工具对APK进行签名。 5. APK签名在更新过程中的作用: 当新的APK版本发布时,系统会对比新旧版本的签名,如果签名一致,表示...
Android支持多种签名算法,如DSA、RSA等,使用如JDK的keytool工具生成密钥对,然后用 jarsigner 工具对APK进行签名。自动签名工具简化了这一过程,使开发者可以快速为多个APK批量签名。 综上所述,"强大的自动编译...
2. **签名APK**:使用Jarsigner工具用Keystore中的私钥对APK进行签名。 3. **优化和ZIPalign**:签名后的APK需要进行ZIPalign优化,以提高应用性能。 4. **发布**:最后,签名并优化过的APK可以上传到应用商店或供...
5. **签名APK**:使用jarsigner工具,执行`jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore <keystore_file> -signedjar signed.apk <unsigned_apk> <alias_name>`,用指定的密钥库和别名签名APK...
2. **签名过程**:SignApkV2使用Java的 jarsigner 工具进行签名操作。它将APK文件和密钥对作为输入,然后生成一个签名的APK。签名过程中,SignApkV2会计算APK的哈希值,用私钥加密该哈希值,并将其包含在APK的META-...
# 使用jarsigner工具签名 jarsigner -verbose -keystore mykey.keystore new.apk alias_name # ZIPalign优化 zipalign -v 4 new.apk aligned.apk ``` 注意,签名时使用的密钥应妥善保管,避免泄露,因为私钥一旦...
3. **签名APK**:使用Jarsigner工具将Keystore与未签名的APK关联,进行签名操作。 4. **优化和ZIPalign**:可选步骤,通过zipalign工具进行内存对齐,提高应用性能。 ### auto-sign工具的使用 `auto-sign`工具自动...
4. ** jarsigner工具**:这也是Java SDK的一部分,用于对JAR或APK文件进行签名。使用jarsigner,开发者可以指定Keystore文件、密钥别名以及密码,对应用进行签名。 5. **APK打包和签名**:在Android Studio中,...
2. 签名APK:使用 jarsigner 工具,将Keystore文件与APK文件结合,生成签名的APK。 3. 验签:安装时,系统会验证APK的签名,确保其完整性。 三、AndroidResEdit AndroidResEdit是一款强大的Android资源编辑工具,...
然后使用Jarsigner工具签名APK,如`jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore yourapk.apk alias_name`。 7. **优化和对齐APK**:最后,使用Zipalign工具对APK...
2. **jarsigner工具**:用于对APK进行签名,确保其在安装时的安全性。在反编译后重新打包APK时,通常也需要使用jarsigner进行签名。 结合jadx和OpenJDK,我们可以完成以下步骤来反编译和分析APK: 1. 使用APK反...
2. **签名APK**:使用Jarsigner工具,用密钥库中的私钥对APK进行签名。 3. **ZIPalign优化**:签名后,使用ZIPalign工具对APK进行对齐优化,以提高性能。 4. **上传到Google Play**:对于打算在Google Play发布的...
最后,你需要使用Java的Jarsigner工具或者第三方工具(如Apksigner)对APK进行签名,使其能够安装到Android设备上。 5. **注意事项** - 反编译APK可能涉及版权问题,未经授权的反编译和修改他人应用是违法的。请...