查看应用签名的MD5、SHA1、SHA256值及签名算法。
查看keystore文件签名信息,前提要有keystore文件和密钥,才能够获取keystore文件的签名信息。
方法一:(适用于 AS)
1)打开 AS工具窗口栏右边的 Gradle -> Project -> app -> Tasks -> android -> signingReport,双击运行 signingReport;
在没有keystore文件和密钥的情况下,要想查看我们所需应用的签名信息,就需要借助 keytool 工具来完成。
首先解压要查看的apk包,通过数据证书管理工具 keytool 查看apk的签名信息。具体步骤如下:
1)将apk修改后缀为 rar 文件后进行解压;
2)进入解压后的 META-INF 目录,找到该目录下的 xxxRSA 文件;
3)通过命令 cmd 打开DOS窗口,输入命令 : keytool -printcert -file [RSA文件路径]
在查看应用签名信息过程中,可能会遇到以下几个问题:
定位 keytoolexe 工具所在的目录,使用相关 *** 作命令查看签名信息;
JKS(Java KeyStore) :是 Java 的 keytools 证书工具支持的证书私钥格式。jks 包含了公钥和私钥,可以通过 keytool 工具来将公钥和私钥导出。因为包含了私钥,所以 jks 文件通常通过一个密码来加以保护。一般用于 Java 或者 Tomcat 服务器。
PKCS #12 :定义了一种存档文件格式,用于实现存储许多加密对象在一个单独的文件中。通常用它来打包一个私钥及有关的 X509 证书,或者打包信任链的全部项目。
定位 keytoolexe 工具所在的目录,使用 *** 作命令转换证书格式;
1私钥公钥不是用户自己输入的,是RSA算法自动生成的,而你输入的密码只是打开那个文件或生成的证书的密码
2密码为“changeit”,而如果尝试几次都不成功的话,就到$JAVA_HOME\jre\lib\security\目录下去配就可以了
方法一(通常用于发布版的keystore)
第一步、打开 Android Studio 的 Terminal 工具。
第二步、输入命令:keytool -v -list -keystore (keystore文件路径)。
第三步、输入 Keystore 密码
方法二 (用于调试版的keystore)
第一步、打开 Android Studio右侧面板的gradle,找到当前项目名(第一个)
第二步、点开,Tasks-->android-->signingReport,点击即可
方法三 (两者都可)
第一步、打开cmd(ctrl+r)
第二步、(调试版)控制台窗口中输入 cd android 定位到 android 文件夹。
(发布版)直接在控制台输入命令
第三步、输入命令 (调试版)keytool -list -v -keystore debugkeystore
无密码,直接回车即可
(发布版)keytool -list -v -keystore (keystore文件路径)
输入 Keystore 密码,回车
1、解压得到RSA文件
APK以zip文件方式打开,在\META-INF\目录中存在一个RSA后缀的文件,一般名为CERTRSA
2、使用keytool命令获取证书信息(包括MD5)
运行如下keytool命令即可:
keytool -printcert -file CERTRSA
正常使用AS生成签名文件后,有这样提示,按照提示修格式,例如
keytool -importkeystore -srckeystore /Users/anbeibei/Desktop/uvpd -destkeystore /Users/anbeibei/Desktop/uvpdjks -deststoretype pkcs12
然后使用新生成的签名文件即可
或者直接使用命令行来生成签名文件,不用AS生成再修改格式,例如
keytool -genkey -alias testalias -keypass 123456 -keyalg RSA -keysize 2048 -validity 36500 -keystore /Users/anbeibei/Desktop/testkeystore -storepass 123456
// 签名配置
signingConfigs{
debug{
storeFile file("testjks")
storePassword"test12345"
keyAlias"test"
keyPassword"test12345"
}
release{
storeFile file("testjks")
storePassword"test12345"
keyAlias"test"
keyPassword"test12345"
}
}
buildTypes{
release{
minifyEnabledfalse
proguardFiles getDefaultProguardFile('proguard-android-optimiztxt'),'proguard-rulespro'
signingConfig signingConfigsrelease
}
debug{
signingConfig signingConfigsdebug
}
}
附 配置使用Android studio的terminal
签名文件keystore 和 jks
各种数字证书区别
开发时我们常常使用JDK自带的keytool工具来创建自签发的证书,并保存到密钥库文件中。如果要把一个密钥库导入到另一个密钥库(比如到另一台机器上安装,同时又不想用覆盖文件的方式),那该怎么 *** 作呢?
比如,我们从aaajks里把别名为tomcat的内容导入到bbbjks里。一个错觉是先从aaajks导出证书、再导入到bbbjks里。
为说明错误情况,我们从头做起。先生成别名为tomcat的证书,并保存到aaajks里:
keytool -keystore aaajks -genkey -keyalg RSA -alias tomcat
然后把证书导出到tomcatcert文件:
keytool -keystore aaajks -export -file tomcatcert -alias tomcat
接着把tomcatcert导入到bbbjks里:
keytool -keystore bbbjks -import -file tomcatcert -alias tomcat
为验证这种做法的错误性,我们可分别用aaajks和bbbjks来启动Tomcat服务器,看看能不能启动成功。由于我们仅仅是出于验证的目的,因此无需在Tomcat的webapps目录里放进应用的war包文件。
先用aaajks来启动Tomcat。修改Tomcat的conf\serverxml文件为:
<Connector port="8443" protocol="orgapachecoyote>
Linux 工具通使用 base64 编码文本格式相关用缀:
证书:crt, pem
私钥:key
证书请求:csr
cer 像二进制证书证书 key 放同文件边候扩展名通叫 pemJava keystore 都二进制像自格式
其实类 UNIX 系统关注文件名缀程序并证书、密钥都明显标识所相关软件( openssl)处理管用扩展名乱用扩展名自识别便桌面环境能扩展名与默认 *** 作、图标关联起
知道文件啥使用 file 命令识别试试经验直接拿文本编辑器打看看
-
JavaKeyStore的类型JKS和JCEKS是Java密钥库(KeyStore)的两种比较常见类型(我所知道的共有5种,JKS,JCEKS,PKCS12,BKS,UBER)。JKS的Provider是SUN,在每个版本的JDK中都有,JCEKS的Provider是SUNJCE,14后我们都能够直接使用它。JCEKS在安全级别上要比JKS强,使用的Provider是JCEKS(推荐),尤其在保护KeyStore中的私钥上(使用TripleDes)。PKCS#12是公钥加密标准,它规定了可包含所有私钥、公钥和证书。其以二进制格式存储,也称为PFX文件,在windows中可以直接导入到密钥区,注意,PKCS#12的密钥库保护密码同时也用于保护Key。BKS来自BouncyCastleProvider,它使用的也是TripleDES来保护密钥库中的Key,它能够防止证书库被不小心修改(Keystore的keyentry改掉1个bit都会产生错误),BKS能够跟JKS互 *** 作,读者可以用Keytool去TryTry。UBER比较特别,当密码是通过命令行提供的时候,它只能跟keytool交互。整个keystore是通过PBE/SHA1/Twofish加密,因此keystore能够防止被误改、察看以及校验。以前,SunJDK(提供者为SUN)允许你在不提供密码的情况下直接加载一个Keystore,类似cacerts,UBER不允许这种情况。证书导入Der/Cer证书导入:要从某个文件中导入某个证书,使用keytool工具的-import命令:1keytool-import-filemycertder-keystoremykeystorejks如果在-keystore选项中指定了一个并不存在的密钥仓库,则该密钥仓库将被创建。如果不指定-keystore选项,则缺省密钥仓库将是宿主目录中名为keystore的文件。如果该文件并不存在,则它将被创建。创建密钥仓库时会要求输入访问口令,以后需要使用此口令来访问。可使用-list命令来查看密钥仓库里的内容:1keytool-list-rfc-keystoremykeystorejksP12格式证书导入:keytool无法直接导入PKCS12文件。第一种方法是使用IE将pfx证书导入,再导出为cert格式文件。使用上面介绍的方法将其导入到密钥仓库中。这样的话仓库里面只包含了证书信息,没有私钥内容。第二种方法是将pfx文件导入到IE浏览器中,再导出为pfx文件。新生成的pfx不能被导入到keystore中,报错:keytool错误:javalangException:所输入的不是一个X509认证。新生成的pfx文件可以被当作keystore使用。但会报个错误asunknownattr136141311171,查了下资料,说IE导出的就会这样,使用Netscape就不会有这个错误第三种方法是将pfx文件当作一个keystore使用。但是通过微软的证书管理控制台生成的pfx文件不能直接使用。keytool不认此格式,报keytool错误:javaioIOException:failedtodecryptsafecontentsentry。需要通过OpenSSL转换一下:1opensslpkcs12-inmycertspfx-outmycertspem2opensslpkcs12-export-inmycertspem-outmykeystorep12通过keytool的-list命令可检查下密钥仓库中的内容:1keytool-rfc-list-keystoremykeystorep12-storetypepkcs12这里需要指明仓库类型为pkcs12,因为缺省的类型为jks。这样此密钥仓库就即包含证书信息也包含私钥信息。P7B格式证书导入:keytool无法直接导入p7b文件。需要将证书链RootServerp7b(包含根证书)导出为根rootcacer和子rootcaservercer。将这两个证书导入到可信任的密钥仓库中。1keytool-import-aliasrootca-trustcacerts-filerootcacer-keystoretestkeytrustjks遇到是否信任该证书提示时,输入y1keytool-import-aliasrootcaserver-trustcacerts-filerootcaservercer-keystoretestkeytrustjks总结P12格式的证书是不能使用keytool工具导入到keystore中的TheSun'sPKCS12Keystore对从IE和其他的windows程序生成的pfx格式的证书支持不太好P7B证书链不能直接导入到keystore,需要将里面的证书导出成cer格式,再分别导入到keystore。
以上就是关于Android查看应用签名方法全部的内容,包括:Android查看应用签名方法、java使用keytool生成证书的时候怎们样设置公钥和私钥还有keystore密码是什么、安卓签名文件.keystore 和 .jks等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)