目录(?)[-]

  1. 类比例子
  2. 数字签名

  

文章转载只能用于非商业性质,且不能带有虚拟货币、积分、注册等附加条件。转载须注明出处:http://blog.csdn.net/flowingflying/

在Windows等操作系统中安装应用并不需要授权,为何Android需要?在设备安装的包都有一个唯一的包名,如果你试图安装一个已有包名的应用,是不会允许的,除非将之前的包删除。为了允许包升级,你必须确保是相同应用发布者,这需要数字签名。

类比例子

葡萄酒收集家发现每一种葡萄酒都有独一无二的色泽,如果色泽相同,必定来自同一葡萄酒生产厂家,无法仿造。色泽可以作为葡萄酒厂家的标识。这个例子和应用签名的唯一差别在于,色泽可没写着厂家名和地址,没有透露葡萄酒厂家信息,而我们前面学习的签名过程中,也相关信息的输入。

我们出国打开收音机,听到不同歌手唱歌,我们知道他们每个不同,但不知道他们的名字,这是歌手通过声音的自我签名。如果一个朋友告诉你某个你听到声音的歌手情况,这就类似于第三方签名。歌手可以模拟其他人来混淆,但是数字签名由算法保证不会被冒用。

当我们谈及某人签了一个JAR文件,这属于self-signed JAR文件,这些JAR文件都有独特的“颜色”与其他的JAR文件区分,但没有没有多余源开发者或公司进行鉴权。在之前的学习的签名,就属于自我签名,自己写上名字和公司,如果乐意,可以写成CIA,是否正确没有得到权威机构所认可。如果由第三方权威机构给出“红颜色”来自公司A,当我们看到“红颜色”,就知道来源公司A,这就是第三方签发的JAR文件。

数字签名

数字签名采用公/私钥加密,这是非对称加密算法,通过私钥进行加密,只能通过公钥进行解密。尽管大家都知道公钥,但因为不知道私钥,无法伪造能通过公钥进行解密的数据。

签名也称为公钥基础建设(public key infrastructure,PKI)证书,使用KPI证书签发JAR,DLL或者应用。每一个包名只能有一个PKI证书,一个PKI证书可去签支持多个包。通过之前的学习keytool和jarsinger命令,通过密码(keypass)来保护私钥。我觉得这有有个漏洞,公私钥算法假定很安全,如果破解的保护私钥的密码,就可以拿这证书去进行签名。这变成如何保护这个密码的问题,无孔不入的NSA是否已经可以破译这个保护密码。

相关链接: 我的Android开发相关文章

【转】 Pro Android学习笔记(八三):了解Package(2):包签名过程的更多相关文章

  1. 【转】Pro Android学习笔记(三十):Menu(1):了解Menu

    目录(?)[-] 创建Menu MenuItem的属性itemId MenuItem的属性groupId MenuItem的属性orderId MenuItem的属性可选属性 Menu触发 onOpt ...

  2. 【转】Pro Android学习笔记(三):了解Android资源(上)

    在Android开发中,资源包括文件或者值,它们和执行应用捆绑,无需在源代码中写死,因此我们可以改变或替换他们,而无需对应用重新编译. 了解资源构成 参考阅读Android学习笔记(三八):资源res ...

  3. 【转】 Pro Android学习笔记(三二):Menu(3):Context菜单

    目录(?)[-] 什么是Context menu 注册View带有Context menu 填Context菜单内容 Context菜单点击触发 什么是Context menu 在桌面电脑,我们都很熟 ...

  4. 【转】 Pro Android学习笔记(三三):Menu(4):Alternative菜单

    目录(?)[-] 什么是Alternative menu替代菜单 小例子说明 Alternative menu代码 关于Category和规范代码写法 关于flags 多个匹配的itemId等参数 什 ...

  5. 【转】 Pro Android学习笔记(八二):了解Package(1):包和进程

    文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ 在之前,我们已经学习了如何签发apk,见P ...

  6. Pro Android学习笔记 ActionBar(1):Home图标区

     Pro Android学习笔记(四八):ActionBar(1):Home图标区 2013年03月10日 ⁄ 综合 ⁄ 共 3256字 ⁄ 字号 小 中 大 ⁄ 评论关闭 ActionBar在A ...

  7. 【转】 Pro Android学习笔记(七四):HTTP服务(8):使用后台线程AsyncTask

    目录(?)[-] 5秒超时异常 AsyncTask 实现AsyncTask抽象类 对AsyncTask的调用 在哪里运行 其他重要method 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注 ...

  8. 【转】 Pro Android学习笔记(五六):配置变化

    目录(?)[-] Activity的destorycreate过程 Fragment的destorycreate过程 onSaveInstanceState saveFragmentInstanceS ...

  9. 【转】 Pro Android学习笔记(十九):用户界面和控制(7):ListView

    目录(?)[-] 点击List的item触发 添加其他控件以及获取item数据 ListView控件以垂直布局方式显示子view.系统的android.app.ListActivity已经实现了一个只 ...

  10. Pro Android学习笔记(一三七):Home Screen Widgets(3):配置Activity

    文章转载仅仅能用于非商业性质,且不能带有虚拟货币.积分.注冊等附加条件.转载须注明出处http://blog.csdn.net/flowingflying/以及作者@恺风Wei. 通过widget定义 ...

随机推荐

  1. 数据库系统概论学习2-《关系数据库与 E/R 模型》

    -----------------------------一直更新学习内容------------------------------------ 建立一个关系数据库需要几步? 2.关系数据库与 E/ ...

  2. .NET及JAVA 中如何使用代码启动程序

    .NET 中: System.Diagnostics.Process.Start("应用程序");    JAVA中: ProcessBuilder pb=new ProcessB ...

  3. sqlserver的疑难杂症解析

    1.电脑修改ip后ssms通过ip访问失败 通过计算机名可以访问成功,但通过修改后的ip访问却失败了! 解决方法:打开Sql Server Configuration Manager -> SQ ...

  4. python global

    如果想在函数内部改变函数外的变量值,用global语句完成: 在不传该变量值入函数的情况下要改变它的值: >>> a = 3 >>> def f(): ... gl ...

  5. 用jQuery Ajax实现前端调用SpringBoot Rest风格API

    本文基于: Eclipse下利用Maven创建SpringBoot的Restful风格程序 SpringBoot发布到独立的tomcat中运行 在Tomcat目录的SpringBoot项目中,将ind ...

  6. java对象流(一)

    注意:字节数组流是可以不用关闭的(字符数组流要不要关闭暂时不清楚). 对象流的读数据和写数据方法分别是writeObject(Object o)和readObject(Object o). Objec ...

  7. ie 元素兼容性总结

    css 属性元素 2.z-index 正常按自身层级决定显示顺序,在ie6 7 还需要依赖于父级的层级决定,排布在后边的元素排在前面.后来者居上覆盖前者. IE6,7支持inline元素转换成inli ...

  8. Jquery Ajax模版

    $.ajax({ type: "GET", url: "test.json", data: {username:'tt', content:'tt'}, dat ...

  9. JVM 知识点总览 - 高级 Java 工程师面试必备

    在江湖中要练就绝世武功必须内外兼备,精妙的招式和深厚的内功,武功的基础是内功.对于武功低(就像江南七怪)的人,招式更重要,因为他们不能靠内功直接去伤人,只能靠招式,利刃上优势来取胜了,但是练到高手之后 ...

  10. tableau 常识积累

    没怎么在业务系统中使用过,所以需要好好积累.看起来很简单的东西都需要慢慢来用.下了一份它的官方文档10.3版本的.公司网络限制,不能去它官网学习.只有下班时间了. 先说一个,有时候度量值它和HANA类 ...