zoukankan      html  css  js  c++  java
  • Apk打包-签名过程

    参考:http://blog.csdn.net/jiangwei0910410003/article/details/50402000

    参考:http://blog.csdn.net/kickxxx/article/details/18252881

     概念:

    数据摘要:对一个数据源进行一个算法之后得到一个摘要,也叫作数据指纹,不同的数据源,数据指纹肯定不一样。

    著名的摘要算法有RSA公司的MD5算法和SHA-1算法及其大量的变体。

    数据签名:非对称密钥加密技术 + 数字摘要技术 的结合。

    如果消息的发送者有一天想给消息接收者发消息,在发送的信息中,除了要包含原始的消息外,还要加上另外一段消息。这段消息通过如下两步生成:

    1)对要发送的原始消息提取消息摘要;

    2)对提取的信息摘要用自己的私钥加密。

    通过这两步得出的消息,就是所谓的原始信息的数字签名。

     数字证书 - Certificate

    数字证书是一个经证书授权 中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。CERT.RSA包含了一个数字签名以及一个数字证书。

    需要注意的是Android APK中的CERT.RSA证书是自签名的,并不需要这个证书是第三方权威机构发布或者认证的,用户可以在本地机器自行生成这个自签名证书。

    过程

    1.生成MAINFEST.MF文件

    遍历文件内容做一次SHA1算法,就是计算出文件的摘要信息,然后用Base64进行编码

    2.生成CERT.SF文件(内容类似MAINFEST.MF)

    1》计算这个MANIFEST.MF文件的整体SHA1值,再经过BASE64编码后,记录在CERT.SF主属性块(在文件头上)的“SHA1-Digest-Manifest”属性值值下

    2》逐条计算MANIFEST.MF文件中每一个块的SHA1,并经过BASE64编码后,记录在CERT.SF中的同名块中,属性的名字是“SHA1-Digest

    3.生成CERT.RSA文件

    用私钥计算出签名, 然后将签名以及包含公钥信息的数字证书一同写入  CERT.RSA  中保存。CERT.RSA是一个满足PKCS7格式的文件。

  • 相关阅读:
    Unity中的shadows(一)
    位1的个数
    Lua的协程
    安装SQL Server 2016时报0x84b10001生成XML文档时出错
    pcl registeration
    SO3和SE3的使用
    save_obj
    vulkan
    gcc编译选项
    全局函数与全局变量 多次使用、引用
  • 原文地址:https://www.cnblogs.com/wjw334/p/7657394.html
Copyright © 2011-2022 走看看