开发者社区> 自娱> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Android签名与认证详细分析之二(CERT.RSA剖析)

简介:
+关注继续查看

一、Android证书的格式

Android签名中证书的格式采用X.509标准的版本三,不过省略了一些内容。

X.509证书格式如下图所示:

二、证书的格式示例

从Chrome浏览器中导出一个证书,打开之后的样子如下图所示:

说明:由上图可以看出,在证书中,开发者的公钥是显式存在的。

三、对CERT.RSA进行详细解析

重要说明:编写Java程序和编写Android应用App解析Apk的CERT.RSA文件,得到的结果是不一样的。按道理,都是解析的同一个文件,为什么结果不一样呢?经过我们分析,发现不一样的地方是开发者公钥,但是这是由于二者的显示格式不同导致的。App解析得到的文件时十六进制显示的,而Java解析得到的结果却是十进制显示的。我们利用Java的BigInteger编写程序,将十六进制转换为十进制,验证了我们的猜想。

明确了上面的问题之后,对CERT.RSA 文件进行详细解析,得到下图:

说明:

(1)首先,我们的通常所说的证书的签名,是生成证书的时候CA对整个证书的所有域签名的得到的,而不是对某一部分签名得到的。整个签名就是上图中部分一的最下面的一段十六进制的内容;

(2)编程中的获取到的内容实质上是就是上图中的部分二,这是一个证书的所有内容;

(3)部分一种的公钥等信息就是从部分二中得来的,可以直接在部分二中找到。

(4)可以猜测,部分一中的其他信息也是从部分二中得来,只不过编码方式不一样,所以显示不同而已。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
DVWA-CSRF-low级别
是一个修改密码的页面 , 输入两次相同的密码即可修改密码 , 我们先看源码 , 获取了输入框的密码后 , 从Cookie中获取了当前登录的用户名 , 就直接修改密码 , 修改之前并没有验证用户身份
25 0
阿里云计算ACP认证经验分享(一)
云计算的崛起意味着计算能力也可以作为一种商品进行流通,就像水、电一样,取用方便,费用低廉。 阿里云云计算ACP专业认证(Alibaba Cloud Certified Professional,ACP)是面向使用阿里云云计算产品的架构、开发、运维类人员的专业技术认证。
126 0
【最佳实践】这样运用阿里云Elasticsearch,让你的数据库马上拥有强大的数据分析和搜索能力。
阿里云Elasticsearch拥有强大的搜索分析能力,最快可达5分钟/次。如何让你的阿里云云存储、云数据库产品拥有数据分析和搜索能力?那么这篇文章将会给你答案。
3500 0
求变量的数据类型,typeid,bool,C和C++的不同,new和delete,C++中的枚举,inline和可变参数模板,auto和函数模板,宽字符
求变量的数据类型,通过函数typeid(变量名).name();获得变量的数据类型。 案例如下: #include<iostream> #include<stdlib.h>   voidmain() {    doubledb = 10.9;    double *pdb = &db;
1224 0
MD5加密处理
//引用命名空间using System.Web.Security;  //MD5加密后长度是32位   FormsAuthentication.HashPasswordForStoringInConfigFile("abc","md5")       //SH1加密后长度是40位   FormsAuthentication.
525 0
+关注
自娱
阿里巴巴无线客户端性能与安全负责人 Gradle中文文档作者
158
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载