android开发之数字签名

http://www.cnblogs.com/fengzhblog/archive/2013/05/06/3063104.html

Android系统要求所有的程序经过数字签名才能安装,如果没有可用的数字签名,系统将不许安装运行此程序,不管是模拟器还是真实手机。因此,在设备或者是模拟器上运行调试程序之前,必须为应用程序设置数字签名。Android系统仅仅会在安装的时候测试签名证书的有效期如果应用程序的签名是在安装之后才到期,那么应用程序仍然可以正常启用

Android通过数字签名来标识应用程序的作者和在应用程序之间建立信任关系,不是用来决定用户可不可以安装该应用程序。android的这个签名由应用程序的作者完成,并不需要权威的数字证书签名机构认证,他只是用来让应用程序包自我认证的。Android系统默认自动给应用程序签名,ADT会自动使用debug密钥为应用程序签名,debug密钥是一个名为debug.keystore的文件。在我的电脑中的路径是:

C:\Documents and Settings\Administrator\.android\debug.keystore

使用eclipse的Export功能,导出apk文件

http://www.cnblogs.com/fengzhblog/archive/2013/05/18/3085147.html

1. 右击弹窗快捷菜单,选择Export,

2. 选择导出目标: Android/Export Android Application,

3. 选择导出项目: txrjsms,

4. 选择一个Keystore:在这个步骤可以选择使用已有的keystore或者创建新的keystore。

当前选中“创建新的keystore”,需要输入location,password,confirm。

设定Location,D:\workspace\apk\foreignsms.keystore,设定Password和Confirm。

5. Key Creation,创建密钥,

输入Alias,Password,Confirm,Validity,First&LastName,其中Validaty推荐输入25(年),

以上几项是必须输入的,其余可以不输入,点击Next,

6. 输入Destination APK File,D:\workspace\apk\txrjsms.apk

点击完成,在文件夹D:\workspace\apk\下生成txrj.keystore文件和txrjsms.apk文件,

生成txrj.keystore是很快的,但是生成txrjsms.apk有点慢,需要一点耐心!

从txrj.keystore中生成MD5

http://www.cnblogs.com/fengzhblog/archive/2013/07/03/3168736.html

Keystore was tampered with, or password was incorrect

E:\AndroidDev\export>keytool -list -keystore txrj.keystore
'keytool' 不是内部或外部命令,也不是可运行的程序或批处理文件。

E:\AndroidDev\export>set path=C:\Program Files\Java\jdk1.6.0_16\bin

E:\AndroidDev\export>keytool -list -keystore txrj.keystore
输入keystore密码:

Keystore 类型: JKS
Keystore 提供者: SUN

您的 keystore 包含 1 输入

txrj, 2013-7-27, PrivateKeyEntry,
认证指纹 (MD5): 34:CD:9C:B9:FA:ED:B7:6D:E7:47:4A:C5:2B:E0:F1:84

(34CD9CB9FAEDB76DE7474AC52BE0F184)

MD5在线查询破解:http://www.cmd5.com/

MD5和数字证书

http://baike.baidu.com/view/7636.htm

大家都知道,地球上任何人都有自己独一无二的指纹,这常常成为公安机关鉴别罪犯身份最值得信赖的方法;与之类似,MD5就可以为任何文件(不管其大小、格式、数量)产生一个同样独一无二的“数字指纹”,如果任何人对文件做了任何改动,其MD5值也就是对应的“数字指纹”都会发生变化。

MD5的典型应用是对一段Message(字节串)产生fingerprint(指纹),以防止被“篡改”。举个例子,你将一段话写在一个叫 readme.txt文件中,并对这个readme.txt产生一个MD5的值并记录在案,然后你可以传播这个文件给别人,别人如果修改了文件中的任何内容,你对这个文件重新计算MD5时就会发现(两个MD5值不相同)。如果再有一个第三方的认证机构,用MD5还可以防止文件作者的“抵赖”,这就是所谓的数字签名应用

 

android开发之打包签名的更多相关文章

  1. 从零开始学android开发-项目打包发布

    右键项目 选择[android tools]-[export signed application package] 点击[next] 如果没有keystore可以选择[create new keys ...

  2. Android开发之打包apk

    新建一个项目之后写点代码 选择build 之后选择Generate Signed APK (生成签名的APK) 选择create new 填写信息 Generate Signed APK 生成签名的A ...

  3. [转]【eoeAndroid索引】史上最牛最全android开发知识汇总

    一.开发环境搭建 (已完成) 负责人:kris 状态:已完成 所整理标签为:搭建 SDK JDK NDK Eclipse ADT 模拟器 AVD 调试器(DEBUG) DDMS 测试 日志 Logca ...

  4. Android安全开发之通用签名风险

    Android安全开发之通用签名风险 作者:伊樵.舟海.呆狐@阿里聚安全 1 通用签名风险简介 1.1 Android应用签名机制 阿里聚安全漏洞扫描器有一项检测服务是检测APP的通用签名风险.And ...

  5. Android开发时包名、签名、渠道和版本号的易坑点(转)

    本文中总结一下 Android 开发中容易被忽视的一些注意事项吧: 一.谨慎选择包名 包名 (Package Name) 就相当于一款应用在户口本上登记的名字,是系统用来区分不同应用的字段.重复的包名 ...

  6. Android打包签名

    Ⅰ.用jdk和sdk自带工具打包签名 a.把jdk下的keytool.exe和jarsigner.exe所在目录(两个工具在同一目录) 添加到环境变量path 1)新建环境变量package,pack ...

  7. C# Activex开发、打包、签名、发布 C# Activex开发、打包、签名、发布 [转]

    C# Activex开发.打包.签名.发布 2013-06-22 12:01:20 浏览:3823 一.前言 最近有这样一个需求,需要在网页上面启动客户端的软件,软件之间的通信.调用,单单依靠HTML ...

  8. Android开发笔记:打包数据库

    对于数据比较多的控制一般会加入SQLite数据库进行数据存储,在打包时这些数据库是不自动打包到apk中的,如何创建数据库呢 方法1:将创建数据库的sql语句在SQLiteHelper继承类中实现,在第 ...

  9. Android开发中Ant命令编译和APK签名的一些心得

    本文章麦子学院跟小伙伴们详细的分享一下关于Android Ant命令行编译和APK签名详解一些实现方法,这是一个朋友在自己做安卓开发时写的,希望对大家会有所帮助呀. 最近在做Android开发时,需要 ...

随机推荐

  1. Json的简单使用

    1>:推荐JSON学习的网址:http://www.w3school.com.cn/json/index.asp 2>:JSON: JavaScript 对象表示法(JavaScript ...

  2. Webservice返回json数据格式

    问题: 我将结果内容用字符串拼接成Json数据并返回的时候,会在结果前面添加xml头部,结果如下. <span ><string xmlns="http://tempuri ...

  3. POJ1417 True Liars 并查集 动态规划 (种类并查集)

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - POJ1417 题意概括 有一群人,p1个好人,p2个坏人. 他们说了n句话.(p1+p2<=600,n ...

  4. 使用cxf两个声明导致ObjectFactory 类中发生冲突

    在网上搜了答案都是一样的,没有解决这个问题. 后来发现原因在于 -p com.XXX.XXX这个命令. 解决方法: 只需要把命名包的这个命令去掉. 但要注意,在移动到项目中去时,必须Refactor包 ...

  5. 素数筛选-hdu2710

    题目描述: 题目大意:找出具有最大素数因子的整数.如果有不止一个,则输出在输入文件中出现最早的一个. 解题思路:刚开始时,p数组中的元素全为0,刚开始对于素数 i,p[i]=0,用一个for循环,将是 ...

  6. macos 下安装virtualenv,virtualenvwrapper,然后在pycharm中正常配置方法日志

    1.安装virtualenv或virtualenvwrapper pip install virtualenv pip install virtualenvwraper 注意pip的版本号(查看 pi ...

  7. 如何使用 Git LFS 提交大文件?

    参考资料: An open source Git extension for versioning large files Git LFS的使用 如何使用 Git LFS 提交大文件? Git LFS ...

  8. MIT-6.824 Raft协议

    摘要 raft是一种比paxos容易理解的一致性算法,实现起来比paxos简单许多.本文前部分描述算法的细节,后部分尝试探讨下该算法的原理. 算法描述 raft算法之所以简单的原因之一是它将问题分解成 ...

  9. 50 tips of JavaScript,这些坑你都知道吗?

    1.在局部作用域中,使用var操作符定义的变量将成为定义该变量的作用域中的局部变量,省略var的会创建全局变量:在全局作用域中,不管是否使用var操作符定义的变量都会创建一个全局变量.但是,在全局作用 ...

  10. hihocoder 1496 寻找最大值(高维前缀最大次大值)

    [题目链接] https://hihocoder.com/problemset/problem/1496 [题目大意] 给定N个数A1, A2, A3, ... AN, 从中找到两个数Ai和Aj(i≠ ...