2:用户敏感信息的解密(加解密、签名系列)

  • • 发表于 8年前
  • • 作者 Roluce
  • • 7168 人浏览
  • • 3 条评论
  • • 最后编辑时间 8年前
  • • 来自 [技 术]

原创声明:本文为作者原创,未经允许不得转载,经授权转载需注明作者和出处

1:getUserInfo()返回的用户信息


调用wx.getUserInfo()接口返回以上的信息,分三部分:

1:基本信息:
能直接看到(明文),是微信认为不敏感的信息,如:昵称、头像、性别等

2:签名验证信息:
验证接收的这些信息是否安全(和发出来时一致,没被中途修改或者伪造)

详见此文:
7:用户数据签名详解(加解密、签名系列)

3:加密信息:
对于微信认为的敏感数据,如openId、unionId等

微信服务器通过AES加密算法把所有能看到敏感数据加密为encryptedData密文

如果想得到openIdunionId,就需要encryptedData进行AES解密


2:encryptedData解密后的数据


3:encryptedData如何解密?

首次看到如上解密说明时,我只知道encryptedData和session_key获得方式。

session_key在上篇有介绍,如下:
1:获得session_key和openId(加解密、签名系列)

产生的疑问:

AES-128-CBC是什么?
PKCS#7数据填充是什么?
Base64_Decode是什么?
初始向量iv是做什么用的?

以上问题,你讲会在如下文章找到答案。

3:AES加密与Base64编码(加解密、签名系列)


4:知道原理,具体怎么在后台编写代码实现?

每种后台语言都有AES相应的接口支持,调用即可。

微信官方提供了(PHP,Node,Phython,C++)编程语言的示例代码
每种语言类型的接口名字均一致。

调用方式可以参照官方提供示例
点击下载示例代码


5:其他

本系列对“官方示例代码的PHP版”进行了注释。

4:官方AES代码(PHP版)代码注释(加解密、签名系列)

分享到:
3条评论
Ctrl+Enter
作者

Roluce

Roluce

APP:0 帖子:50 回复:112 积分:3610

已加入社区[2933]天

山东_聊城_qq:635068

作者详情》
Top