本文目录一览:
如何重签名APK文件
方法一:需要删除apk包中的签名文件,META-INF(更改apk格式为压缩包形式,删除META-INF文件夹,改回.apk格式); 将证书(debug.keystore)复制到与需要重新签名的apk文件相同的目录下(如:复制到D:\Sign); 进入cmd模式,进入D:\Sign目录; 运行下面的命令:
jarsigner -verbose -keystore debug.keystore -storepass android -signedjar PhoneBook_signed.apk -digestalg SHA1 -sigalg MD5withRSA PhoneBook.apk androiddebugkey
解释:
-jarsigner
是Java的签名工具-verbose
参数表示:显示出签名详细信息-keystore
表示使用当前目录中的debug.keystore签名证书文件-storepass android
表示Keystore密码:“android”-signedjar PhoneBook_signed.apk
表示签名后生成的APK名称PhoneBook.apk
表示未签名的APK Android软件-digestalg SHA1 -sigalg MD5withRSA
:这就是必须加上的参数,如果你是jdk 1.6也不受影响-androiddebugkey
表示Key别名 大功告成,看看文件夹吧; 方法二:使用工具re-sign.jar。打开re-sign.jar。删除签名文件,META-INF后,拖动apk到re-sign.jar处,并点击保存;
创建app数字签名证书
App签名的作用一方面保证安装包内文件的完整性,以防文件被篡改导致不可预知的后果;另一方面在安装包内附加应用的开发者信息。 总体来说,有如下三种app签名方法:
- 开发环境自带的app签名
AS等开发环境一般都自带app签名的功能,只需要在开发环境中找到相应功能按照步骤逐步执行即可得到签名后的apk文件。 - cordova环境下编译时自动签名
Keytool是java自带的签名工具。
说明:- release-singing.properties是手工配置的文本文件
- build-extras.gradle是手工配置的文本文件
- 手工签名【我就是用的这种方法,挺好用的】
以上创建数字签名证书和APP签名的命令都是JAVA自带的工具,亲测没有问题。在签名时需要提供证书的密码,该密码就是创建数字签名证书时设置的密码。
Android查看应用签名方法
查看应用签名的MD5、SHA1、SHA256值及签名算法。 查看keystore文件签名信息,前提要有keystore文件和密钥,才能够获取keystore文件的签名信息。 方法一:(适用于 AS)
- 打开 AS工具窗口栏右边的 Gradle - Project - app - Tasks - android - signingReport,双击运行 signingReport; 在没有keystore文件和密钥的情况下,要想查看我们所需应用的签名信息,就需要借助 keytool 工具来完成。 首先解压要查看的apk包,通过数据证书管理工具 keytool 查看apk的签名信息。具体步骤如下:
- 将apk修改后缀为 .rar 文件后进行解压;
- 进入解压后的 META-INF 目录,找到该目录下的 xxx.RSA 文件;
- 通过命令 cmd 打开DOS窗口,输入命令:
keytool -printcert -file [RSA文件路径]
在查看应用签名信息过程中,可能会遇到以下几个问题: 定位 keytool.exe 工具所在的目录,使用相关操作命令查看签名信息; JKS(Java KeyStore) :是 Java 的 keytools 证书工具支持的证书私钥格式。jks 包含了公钥和私钥,可以通过 keytool 工具来将公钥和私钥导出。因为包含了私钥,所以 jks 文件通常通过一个密码来加以保护。一般用于 Java 或者 Tomcat 服务器。 PKCS #12 :定义了一种存档文件格式,用于实现存储许多加密对象在一个单独的文件中。通常用它来打包一个私钥及有关的 X.509 证书,或者打包信任链的全部项目。 定位 keytool.exe 工具所在的目录,使用操作命令转换证书格式;
java数据证书管理工具keytool怎么看生成成功了?
下面产生一个自签证书。安装完J2SDK(这里用的是J2SDK1.4)后,在J2SDK安装目录的bin目录下,有一个keytool的可执行程序。利用keytool产生自签证书的步骤如下:
第一步,用-genkey
命令选项,产生公私密钥对。在控制台界面输入:
keytool -genkey -alias testkeypair -keyalg RSA -keysize 1024 -sigalg MD5withRSA
这里的:
-alias
表示使用这对公私密钥产生新的keystore入口的别名(keystore是用来存放管理密钥对和证书链的,缺省位置是在使用者主目录下,以.keystore为名的隐藏文件,当然也可指定某个路径存放.keystore文件);-keyalg
是产生公私钥对所用的算法,这里是RSA;-keysize
定义密钥的长度;-sigalg
是签名算法,选择MD5withRSA,即用RSA签名,然后用MD5哈希算法摘要。 接下来,系统会提示进行一些输入:
输入keystore密码: abc123
您的名字与姓氏是什么?
[Unknown]: Li
您的组织单位名称是什么?
nbs
如何用Java读取使用证书
证书(Certificate,也称public-key certificate)是用某种签名算法对某些内容(比如公钥)进行数字签名后得到的、可以用来当成信任关系中介的数字凭证。证书发行机构通过发行证书告知证书使用者或实体其公钥(public-key)以及其它一些辅助信息。证书在电子商务安全交易中有着广泛的应用,证书发行机构也称CA(Certificate Authority)。
应用证书
证书在公钥加密应用中的作用是保证公钥在某些可信的机构发布,其在协议SSL、电子交易协议SET等方面有重要的应用。图1显示了一个最简单的证书应用方法: 图1 证书应用方法 证书的应用步骤是:
- A把自己的公钥PKA送到CA(Certificate Authority);
- CA用自己的私钥和A的公钥生成A的证书,证书内包括CA的数字签名。签名对象包括需要在证书中说明的内容,比如A的公钥、时间戳、序列号等,为了简化这里不妨假设证书中只有三项内容:A的公钥PKA、时间戳TIME1、序列号IDA。那么CA发送给A的简单证书凭证可表达为:CertA=Eca[TIME1,IDA,PKA];
- B同样把自己的公钥PKB送到CA;
- B得到CA发布的证书CertB;
- A告知B证书CertA;
- B告知A证书CertB。 A、B各自得到对方证书后,利用从CA得到的公钥(在CA的自签证书中)验证彼此对方的证书是否有效,如果有效,那么就得到了彼此的公钥。利用对方的公钥,可以加密数据,也可以用来验证对方的数字签名。 本文为了方便说明,并没有使用从CA获得的证书,而是通信双方各自产生自签证书,也就是说图1的A和B并没有经过CA,不过前提是A和B之间是互相拥有对方的证书。