android签名验证
‘壹’ android签名是要md5值还是要sha1值
android签名是要md5值
‘贰’ android 签名失败怎么办
Android签名失败由以下原因造成:
1. 手机已经安装了一个包名相同的应用
2. 当前手机操作系统不满足程序包要求的系统版本
3. 手机存储空间不足
4. 安装包已经损坏
解决办法:
1. 查看本机是否有安装,如果有直接卸载掉
2. 查看一下程序包的版本,与当前手机是否一致
3. 卸载手机一些无用或者很少用的应用,释放手机存储空间
4. 重新下载安装包
‘叁’ 如何判断 Android 应用的 Apk 签名是否一致
Android应用的发布形式apk中包含的签名加密方法除了RSA还有DSA,所以不能只从apk中提取常见的META-INF/CERT.RSA,第一步应该是检查apk中具体的签名文件是什么。
FILE="yourapp.apk"
cert_XSA=`jar tf $FILE | grep SA`
此时得到的cert_XSA可能是META-INF/*.RSA或者META-INF/*.DSA。
接下来从apk中提取具体的签名文件。
jar xf $FILE $cert_XSA
此时会在当前目录得到cert_XSA文件。
然后对于得到的签名文件,提取其中签名的MD5值
keytool -printcert -file $cert_XSA | grep MD5 > "$FILE.certMD5"
这时候yourapp.certMD5这个文件中就保存了yourapp.apkk中的签名MD5值。
最后比较两个app的签名可以用diff
FILE1="yourapp1.apk"
FILE2="yourapp2.apk"
# ...
# ... 经过上述步骤得到$FILE1.certMD5和$FILE2.certMD5
# ...
certMD5_diff=`diff $FILE1.certMD5 $FILE2.certMD5`
if [ "$certMD5_diff" = "" ]; then
echo "$FILE1.certMD5 == $FILE2.certMD5"
fi
若输出yourapp1.apk.certMD5 == yourapp2.apk.certMD5那么这两个应用的签名就一致。
‘肆’ android开发app签名过期了怎么解决
android开发app签名过期了可以将app卸载,并重新安装最新版本。因为所有的Android应用程序都要求开发人员用一个证书进行数字签名,android不会安装没有进行签名的程序,签名有一个作用就是防止程序被篡改。
APP签名的其中另一个作用是应用程序升级。如果想要升级应用的版本,那么必须用同一个证书进行签名,这是由于只有以同一个证书签名,系统才会允许安装升级此应用程序。
如果用户使用了不同的证书进行签名,那么系统就会要求您的应用程序换名称,也就相当于安装一个新的应用程序。
(4)android签名验证扩展阅读:
app签名在数据共享中的应用:
不同的应用程序之间,想共享数据,或者共享代码,那么要让它们运行在同一个进程中,而且要让它们用相同的证书签名。
以同一个证书对多个应用程序进行签名,利用基于签名的权限检查,就可以在应用程序间以安全的方式共享代码和数据了。
‘伍’ 如何生成Android的签名证书
cmd命令生成android签名证书,有空在写一篇eclipse导出带签名的apk,这里面包括生成新的签名。现在还是讲讲在cmd怎么操作生成签名证书。
1、dos下进入JDK的bin目录
运行如下命令:keytool -genkey -alias android.keystore -keyalg RSA -validity 20000 -keystore android.keystore
(-validity 20000代表有效期天数),命令完成后,bin目录中会生成android.keystore
示例:
C:\Program Files (x86)\java\jdk1.8.0_25\bin>
keytool -genkey -alias test.keystore -keyalg RSA -validity 20000 -keystore d:\test.keystore
ps:-alias test 生成的keystore别名,-keyalg RSA 加密和数字签名的算法,-validity 20000 有效天数
输入密钥库口令:123456
再次输入新口令:123456
您的名字与姓氏是什么?
[Unknown]: rob
您的组织单位名称是什么?
[Unknown]: abc
您的组织名称是什么?
[Unknown]: abc
您所在的城市或区域名称是什么?
[Unknown]: guangzhou
您所在的省/市/自治区名称是什么?
[Unknown]: guangzhou
该单位的双字母国家/地区代码是什么?
[Unknown]: cn
CN=rob, OU=abc, O=abc, L=guangzhou, ST=guangzhou, C=cn是否正确?
[否]: y
输入 <test> 的密钥口令
(如果和密钥库口令相同, 按回车):
如果没有错误则回去查看D盘根目录下,多了test.keystore
所以第一次输入的是,密钥库的密码。
最后输入时密钥别名的密码。到这里生成签名就搞定啦。
2、查看md5指纹验证
输入keytool -list -v -alias androiddebugkey -keystore 再加上刚刚从红色框中复制出来的内容
我这里的就是keytool -list -v -alias androiddebugkey -keystore C:\Users\ZLQ\.android\debug.keystore了,回车
-alias androiddebugkey 这个是别名
-keystore C:\Users\ZLQ\.android\debug.keystore 具体位置的密钥库
要求输入密码,密码是android,至此就可以拿到MD5认证指纹了
‘陆’ android开发 怎么给apk文件用已有的签名文件进行签名,不用eclipse
给apk文件签名主要分三步:
1、创建证书
2、签名
3、优化(可选)
1)使用jdk的keytool工具生成签名用的证书> keytool -genkey -v -alias CERT -keyalg RSA -keysize 2048 -validity 10000 -keystoreCERT.keystore 创建过程需要输入一些标识信息和密码,一些重要的参数值说明如下(根据自己的需要要进行相应的修改): CERT.keystore ---- 证书保存的文件名 CERT ---- 证书的别名 10000 ---- 10000天的有效期 2048 ---- 默认为1024 bits,Android 建议使用2048 bits或更高其他的详细信息可以使用keytool -help查看帮助 证书生成后使用如下命令可以查看证书的信息:> keytool -list -alias CERT -keystore CERT.keystore
2)使用jdk的jarsigner工具对apk文件签名> jarsigner -verbose -keystore CERT.keystore to_sign.apk CERT 签名过程需要输入证书的密码,一些重要的参数值说明如下(根据自己的需要要进行相应的修改): CERT.keystore ---- 证书保存的文件名 CERT ---- 证书的别名 待签名的apk文件根根目录下如果有文件夹“META-INFO”,请先删除(重新签名就需要这样做)。如果不想创建过程输出太多信息,可以删除“-verbose” 。上述签名会直接覆盖原来的文件,如果不想被覆盖而签名为另外的新文件 signed.akp,只需将 to_sign.apk 改为 -signedjar to_sign.apk signed.akp 即可。签名后可以使用如下命令验证是否签名成功: > jarsigner -verify to_sign.apk 如果需要查看更详细的验证信息,可修改为:> jarsigner -certs -verbose -verify to_sign.apk
3)使用android sdk的zipalign工具优化已签名的apk文件> zipalign -v 4 unaligned.apk aligned.apk 注意要在签名后再zipalign。这个工具不是jdk自带的,而是在%ANDROID_HOME%\tools\zipalign.exe。
‘柒’ Android签名有什么作用
平时我们的程序可以在模拟器上安装并运行,是因为在应用程序开发期间,由于是以Debug面试进行编译的,因此ADT根据会自动用默认的密钥和证书来进行签名,而在以发布模式编译时,apk文件就不会得到自动签名,这样就需要进行手工签名。给apk签名可以带来以下好处:1.、应用程序升级:如果你希望用户无缝升级到新的版本,那么你必须用同一个证书进行签名。这是由于只有以同一个证书签名,系统才会允许安装升级的应用程序。如果你采用了不同的证书,那么系统会要求你的应用程序采用不同的包名称,在这种情况下相当于安装了一个全新的应用程序。如果想升级应用程序,签名证书要相同,包名称要相同!2、应用程序模块化:Android系统可以允许同一个证书签名的多个应用程序在一个进程里运行,系统实际把他们作为一个单个的应用程序,此时就可以把我们的应用程序以模块的方式进行部署,而用户可以独立的升级其中的一个模块3、代码或者数据共享:Android提供了基于签名的权限机制,那么一个应用程序就可以为另一个以相同证书签名的应用程序公开自己的功能。以同一个证书对多个应用程序进行签名,利用基于签名的权限检查,你就可以在应用程序间以安全的方式共享代码和数据了。不同的应用程序之间,想共享数据,或者共享代码,那么要让他们运行在同一个进程中,而且要让他们用相同的证书签名。
‘捌’ Android怎么签名和加密
前言:
当我们编写完我们的app之后,我们还需要做两件事:签名和加密
签名:
1>为什么要签名?
主要是为了确保应用的安全,为什么这么说呢?那么,我们首先假设android没有签名这个概念,
在这个前提下,下面来举个实例说明签名的重要性,比如,我写了一个myApp,然后装在了我的手机上,
与此同时,我又装了一个yourApp,在装yourApp的时候,突然发现myApp被覆盖了,为什么?因为yourApp
的包名和myApp的包名相同,那么,这样对于开发人员写的app的安全性是没有保障的,也就是说,随便一个
包名相同的app就可以将另一个app覆盖掉了,而我们知道获取一个应用的包名是很容易的事,所以此时签名的
概念也就随之而来了,主要是为了保证app的安全性,因为签名只有开发人员才知道,就算其他人知道这个应用
的包名,但是不知道这个应用的签名,依旧是没法覆盖的,所以这就是android中的签名的作用,与此同时,
在这里也需要提醒一下我们的开发人员,一旦app上市,那么这个app的签名一定要保存好,不然再次升级时,
是没办法做到覆盖的,最好是将签名再复制一份给上司;
2>如何签名?
在android studio中,选择Build -----> Generate Signed APK...
在这个对话框中,Build Type选择Finish即可完成签名;
注:(签名apk生成目录)
我们签名之后的apk文件,可以在上边这幅图中可以看到,不要找错签名的应用了,
在本示例中,其目录就是:C:UsersDAIDesktop
加密:
1>为什么要进行加密?
简而言之,就是为了让我们的apk不被其他人所破解;
2>如何加密?
参考了一下网上的做法,就是:通过“爱加密”来达到对我们所写APK的一种加密
注:在爱加密上加密了我们的APK之后,其官网也有明确注释,就是还需要再进行签名一次,否则,APK无法运行,
其签名工具,在 “ 爱加密 ” 官网上已给出;
这样当我们在对我们的已经加密的APK破解时,可以发现,其已无法直接获取得到源码了!!!
阅读全文
‘玖’ 如何对android的apk签名进行验证
方法/步骤
1
菜单菜单键,键入cmd命令进入命令模式。如图:
2
命令模式中,进入JDK的安装目录的Bin子目录下。(我的JDK安装在E盘,所以先进入E盘,然后再进入JDK安装目录)
3
通过keytool.exe 工具来创建keystore库.
输入以下命令:
keytool -genkeypair -alias - mydemo.keystore -keyalg RSA -validity 100
-keystore mydemo.keystore
命令说明如下:
-genkeypair :指定生成数字证实
-alias :指定生成数字证书的别名
-keyalg:指定生成数字证书的算法 这里如RSA算法
-validity:指定生成数字证书的有效期
-keystore :指定生成数字证书的存储路径。 (这里默认在keytool.exe 目录下)
回车 出现如图交互式界面 输入数字证书费密码 作者 公司等详细信息
如图 :
4
完成后,keystore库创建完成,你可以在指定的保存目录下找到 如图:
5
使用jarsigner命令对未签名的APK安装包进行签名。使用JDK安装目录下bin子目录下的jarsigner.exe工具来进行签名。
然后把未签名的apk也拷贝到此目录。如图:
6
使用如下命令进行签名:
jarsigner -verbose -keystore mydemo.keystore -signedjar
-Note.apk Notes.apk mydemo.keystore
以上命令的说明:
-verbose:指定生成详细输出
-keystore:指定数字证书存储路径
-signedjar:该选项的三个参数为 签名后的apk包 未签名的apk包 数字证书别名
注意有效期哦。
7
签名后的apk 如图:
8
sdk目录下tool目录下使用zipalign.exe工具优化APK安装包。
将已经签名的apk包放在zipalign.exe同目录下 如图:
9
使用如下命令:
zipalign -f -v 4 -Note.apk -Notes.apk
命令说明:
-f :指定强制覆盖已有文件
-v 指定生成详细输出
4:指定档案整理基于的字节数 一般是4 也有基于32位的。
-Note.apk :优化前APK
-Notes.apk 优化后的APK
10
运行命令后,在该目录下生成一个-Notes.apk,这个就是优化过的APK安装包
,该安装包可以对外发布。
如图:
如果能对你有帮助,希望你能收藏和支持。
http://jingyan..com/article/3c48dd3491d91fe10be358f4.html
‘拾’ apk签名是什么意思
apk签名相当于程序的身份识别代码。
是Android application package英文缩写。
它是为了确保消息来源的真实性,同时确保消息不会被第三方篡改。于是就产生了apk签名。
在apk中写入一个“指纹”。指纹写入以后,Apk中有任何修改,都会导致这个指纹无效,Android系统在安装Apk进行签名校验时就会不通过,从而保证了安全性。
(10)android签名验证扩展阅读:
作用
1、apk签名用于程序编译打包之后,手机在运行程序之前会先去验证程序的签名(可以看作类似于我们电脑上常说的md5)是否合法,只有通过了验证的文件才会被运行,所以签名软件的作用的让文件通过手机的验证为合法,不同的手机、系统是对应不同的签名的。
2、可以用签名工具来更改。比如手机签名工具ZipSigner 2,可以对手机上的文件进行直接签名,支持apk、zip及jar格式,方便刷机或汉化的朋友。有些爱好修改安卓apk软件的用户有时候需要对apk文件进行修改。
但是如果在电脑上操作的话,打包签名是十分复杂的,还必须安装java环境,可以说打包一个包是十分麻烦的,这款签名工具可以解决上述遇到的问题。
3、应用程序模块化:Android 系统可以允许同一个证书签名的多个应用程序在一个进程里运行,系统实际把他们作为一个单个的应用程序,此时就可以把我们的应用程序以模块的方式进行部署,而用户可以独立的升级其中的一个模块。