codepush bundle签名校验

签名校验流程

整个流程可分为两个阶段:

  1. 服务端加密阶段。这个阶段在打包的同时生成bundle签名文件(签名文件里包含了 bundle的哈希值)并通过私钥进行加密

  2. 客户端校验阶段。 这个阶段在客户端通过公钥解密签名文件。这个阶段又可以分为两个小阶段:

2.1. 一致性校验,也就是对比服务端下发的哈希值和客户端生成的哈希值是否一致
哈希的计算方式:遍历bundle内的所有文件,挨个生成哈希,再合并,哈希算法是SHA-256。

2.2. 签名校验,也就是通过解密签名文件来对他的真实性进行校验,解密得到的结果是原始的签名文件,通过对比签名文件中的哈希值与实际的哈希值可以确保签名没有发生改变

签名生成算法: JWT,具体算法为RS256(采用SHA-256 的 RSA 签名)
这个需要客户端和服务端配合,服务端用私钥加密,客户端用公钥解密。
为了兼容老版本,当客户端没有公钥的时候,只做一致性校验,不做签名校验。

codepush 整体更新流程


codepush 整体更新流程

你可能感兴趣的:(codepush bundle签名校验)