前言:
当我们编写完我们的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破解时,可以发现,其已无法直接获取得到源码了!!!
阅读全文
B. android 应用签名怎么获取
方法/步骤
1
1 win7,开始菜单,搜索cmd
2
2 打开cmd
3
3 进入.android
4
4 使用命令keytool -list -v -keystore debug.keystore
5
5 需要安装keytool,办法是安装jdk,网络搜索jdk并下载安装;具体平台按实际情况选择
6 安装完毕,进入到jdk安装bin目录,并复制地址
7 回到cmd命令窗口,输入cd + 空格,并在标题栏右侧点击粘贴
8 回车,进入到这个目录
9 再次输入keytool -list -v -keystore debug.keystore命令并回车,出现错误
10 先执行以下命令keytool -genkey -v -keystore debug.keystore -alias androiddebugkey -keyalg RSA -validity 10000
11 按提示输入密码(自己定),密保答案等;到后来需要重新再输入密码,生成完成
12 到keytool目录下,看到debug.keystore已经生成成功
13 将这个文件复制到.android文件夹下
14 现在再次键入生成android签名的命令:keytool -list -v -keystore debug.keystore,按提示输入密码,即可成功生成签名
15 在标题栏右键选择标记复制其中的SHA1的值,即为android的签名
C. 如何获取生成安卓应用的应用签名
public void getSingInfo() {
try {
PackageInfo packageInfo = getPackageManager().getPackageInfo(
"com.example.yao", PackageManager.GET_SIGNATURES);
Signature[] signs = packageInfo.signatures;
Signature sign = signs[0];
parseSignature(sign.toByteArray());
} catch (Exception e) {
e.printStackTrace();
}
}
public void parseSignature(byte[] signature) {
try {
CertificateFactory certFactory = CertificateFactory
.getInstance("X.509");
X509Certificate cert = (X509Certificate) certFactory
.generateCertificate(new ByteArrayInputStream(signature));
String pubKey = cert.getPublicKey().toString();
String signNumber = cert.getSerialNumber().toString();
System.out.println("pubKey:" + pubKey);
System.out.println("signNumber:" + signNumber);
} catch (CertificateException e) {
e.printStackTrace();
}
}
D. 如何生成android签名文件
工具/原料
Win7 x64
adt-bundle-windows-x86_64-20140702
方法/步骤
新建一个工程命名为“HelloWorld”,操作如下图所示, 处前两个界面外,其他的界面都点击默认值即可;
通过 “右键工程->Run As...->Android Application”, 在 工程目录的 bin/HelloWorld.apk 会生成一个apk文件
点击 “Use the Export Wizard”,如下图所示:
点击 Next, 如下图所示:
1、选择 "Create New Keystore",
2、输入将要保存的数字签名文件,如“D:\Android\key\HelloWorld.key”
3、输入密码,如:HelloWorld
4、输入确认码,如 HelloWorld
5、点击 Next
效果如下:
输入昵称,密码,确认码,期限,名字后,点击next,如下图所示:
输入需要签名的apk包,点击Finish后,就完成了对apk包的数字签名
同时也会生成数字签名用的文件,如:“"D:\Android\key\HelloWorld.key"”
E. 如何生成 android 签名文件
两种方式,一种开发工具eclipse,还有就是用apktool工具。
I、只要Run As Android Application 过,到工作目录的bin文件夹下就能找到与项目同名的apk文件。
II、
A.选中项目,右键=》Andoid Tools=》Export Unsigned Application Package,直接保存,未签名的。
B.选中项目,右键=》Andoid Tools=》Export Signed Application Package,后面一步步的去做,签过名的。
APK签名主要有两种:
1. 使用特殊的key签名可以获取到一些不同的权限。
2. APK如果使用一个key签名,发布时另一个key签名的文件将无法安装或覆盖老的版本,这样可以防止你已安装的应用被恶意的第三方覆盖或替换掉。
F. 如何获取android app的签名
方法/步骤
1
1 win7,开始菜单,搜索cmd
2
2 打开cmd
3
3 进入.android
4
4 使用命令keytool -list -v -keystore debug.keystore
5
5 需要安装keytool,办法是安装jdk,网络搜索jdk并下载安装;具体平台按实际情况选择
6 安装完毕,进入到jdk安装bin目录,并复制地址
7 回到cmd命令窗口,输入cd + 空格,并在标题栏右侧点击粘贴
8 回车,进入到这个目录
9 再次输入keytool -list -v -keystore debug.keystore命令并回车,出现错误
10 先执行以下命令keytool -genkey -v -keystore debug.keystore -alias androiddebugkey -keyalg RSA -validity 10000
11 按提示输入密码(自己定),密保答案等;到后来需要重新再输入密码,生成完成
12 到keytool目录下,看到debug.keystore已经生成成功
13 将这个文件复制到.android文件夹下
14 现在再次键入生成android签名的命令:keytool -list -v -keystore debug.keystore,按提示输入密码,即可成功生成签名
步骤阅读
15 在标题栏右键选择标记复制其中的SHA1的值,即为android的签名
G. 安卓程序怎么签名
有打包签名软件 不过要先装jDk环境 而且有的是没办法签名的 比如扣扣
H. 如何将android应用生成签名
1.签名的步骤
a.创建key
b.使用步骤a中产生的key对apk签名
2.具体操作
方法一: 命令行下对apk签名(原理)
创建key,需要用到keytool.exe (位于jdk1.6.0_24jrein目录下),使用产生的key对apk签名用到的是jarsigner.exe (位于jdk1.6.0_24in目录下),把上两个软件所在的目录添加到环境变量path后,打开cmd输入
D:>keytool -genkey -alias demo.keystore -keyalg RSA -validity 40000 -keystore demo.keystore
/*说明:-genkey 产生密钥
-alias demo.keystore 别名 demo.keystore
-keyalg RSA 使用RSA算法对签名加密
-validity 40000 有效期限4000天
-keystore demo.keystore */
D:>jarsigner -verbose -keystore demo.keystore -signedjar demo_signed.apk demo.apk demo.keystore
/*说明:-verbose 输出签名的详细信息
-keystore demo.keystore 密钥库位置
-signedjar demor_signed.apk demo.apk demo.keystore 正式签名,三个参数中依次为签名后产生的文件demo_signed,要签名的文件demo.apk和密钥库demo.keystore.*/
注意事项:android工程的bin目录下的demo.apk默认是已经使用debug用户签名的,所以不能使用上述步骤对此文件再次签名。正确步骤应该是:在工程点击右键->Anroid Tools-Export Unsigned Application Package导出的apk采用上述步骤签名。
方法二:使用Eclipse导出带签名的apk
Eclipse直接能导出带签名的最终apk,非常方便,推荐使用,步骤如下:
第一步:导出。
第二步:创建密钥库keystore,输入密钥库导出位置和密码,记住密码,下次Use existing keystore会用到。
第三步:填写密钥库信息,填写一些apk文件的密码,使用期限和组织单位的信息。
第四步:生成带签名的apk文件,到此就结束了。
第五步:如果下次发布版本的时候,使用前面生成的keystore再签名。
第六步:Next,Next,结束!
方法三:使用IntelliJ IDEA导出带签名的apk
方法步骤基本和Eclipse相同,大概操作路径是:菜单Tools->Andrdoid->Export signed apk。
I. 手机如何做电子签名
为什么会去想自己用手机制作电子签名呢?自己制作的电子签名又不具有法律效力,可以说只是一个pdf图片罢了,正确的做法应该是选择正规的第三方电子签章平台,在平台上制作电子签名或者电子签章。那么如何在第三方电子签章平台进行电子签名?我以微签为例,来看看电子签名的正确做法。
首先,第一用户手机号注册微签,即可解决远程办公
综上,就是微签电子签名得一个大概流程,微签提供电脑端、APP、小程序多个入口,可嵌入钉钉、企业微信、OA,随时随时使用。支持SaaS公有云、私有本地部署,随您而定。
微签PC端注册体验:http://www.forwave.com
微签移动端体验:在苹果、安卓各应用市场、微信小程序搜索“微签”
这才是正确的电子签名的方式,快来试试吧!
J. 怎么给Android应用程序签名
Android系统要求所有的程序经过数字签名才能安装,如果没有可用的数字签名,系统将不许安装运行此程序。不管是模拟器还是真实手机。因此,在设备或者是模拟器上运行调试程序之前,必须为应用程序设置数字签名。·所有的程序都必须签名,没有被签名的程序,系统将不能安装。
·可使用自签署证书签署应用程序,无须授权凭证。
·系统仅仅会在安装的时候测试签名证书的有效期,如果应用程序的签名是在安装之后才到期,那么应用程序仍然可以正常启用。
·可以使用标准工具-Keytool and Jarsigner-生成密钥,来签名应用程序的.apk文件。
Android SDK 工具可以在调试时给应用程序签名。ADT插件和Ant编译工具都提供了两种签名模式-debug模式和release模式
·debug模式下,编译工具使用JDK中的通用程序Keytool通过已知方法和密码创建秘锁和密钥。每次编译的时候,工具使用debug密钥签名应用程序的.apk文件。因为密码是已知的,工具不需要在每次编译的时候提示输入密锁和密钥。
·当应用程序调试完毕准备要发布release版本时,可以在release模式下编译。release模式下,编译工具不会将.apk文件签名。需要自己用Keytool生成密钥和密锁,再用JDK中的Jarsigner工具给.apk文件签名。签名基本设置 首先设置JAVA_HOME环境变量,告诉SDK如何找到Keytool,或者可以在Windows 系统环境变量PATH变量中添加Keytool的JDK路径。
在发布release版本时,从Package面版上按选中你的project,按鼠标右键,依次选择Android Tools、Export Application Package。或者可以点击Manifest Editor,overview 页面上的“Exporting the unsigned .apk”连接 ,导出未签名apk文件。保存.apk文件后,用Jarsigner及自己的密钥给apk文件签名,如果没有密钥, 可以用Keystore创建密钥和密锁。如果已经有一个密钥了,如公共密钥,就可以给.apk文件签名了。也可以把上面这个完整的步骤写成一个bat文件,这样需要签名的时候只要运行这个bat就可以了。下面给出一个完整的bat文件示例:
@Rem android签名程序 //注释指令
@Rem echo是显示指令 格式:echo [{on|off}] [message]
@echo **********************************************************
@Rem 文件是否存在命令格式:if exist 路径+文件名 命令
@if exist d:sign/MyFirstApp.keystore goto sign
@echo 创建签名文件MyFirstApp.keystore
@Rem keytool命令格式:-genkey产生签名 -alias别名 -keyalg加密算法 -validity有效天数 -keystore生产签名文件名称
keytool -genkey -alias MyFirstApp.keystore -keyalg RSA -validity 40000 -keystore MyFirstApp.keystore
@echo 开始签名:
@Rem jarsigner命令格式:-verbose输出详细信息 -keystore密钥库位置 -signedjar要生成的文件 要签名的文件 密钥库文件
jarsigner -verbose -keystore MyFirstApp.keystore -signedjar MyFirstApp_signed.apk MyFirstApp.apk MyFirstApp.keystore@goto over:sign@echo 开始签名:
jarsigner -verbose -keystore MyFirstApp.keystore -signedjar MyFirstApp_signed.apk MyFirstApp.apk MyFirstApp.keystore:over@echo ********************MyFirstApp.apk 签名完成************************pause================以上是一个给应用签名的完整bat文件,在运行这个bat文件时,还需要按照屏幕提示的步骤输入一些必要信息,最后生成一个签名后的文件是:MyFirstApp_signed.apk。签名完成以后最好再把这个文件压缩一下,使用Android SDK安装路径下tools文件夹里的zipalign进行压缩,以刚才这个文件为例,也可以写成一个bat文件,示例如下:
D:\soft\android-sdk-windows\tools\zipalign -c -v 4 MyFirstApp_zip.apkpause================上面的D:\soft\android-sdk-windows用你的实际Android SDK安装路径代替。按照以上步骤签名、压缩就完成了,最后把压缩后的那个文件(比如例子中的MyFirstApp_zip.apk文件)复制到手机上就可以正常的安装运行了。