经常看到有点的小伙伴在群里问小程序用户数据解密流程,所以打算写一篇关于小程序用户敏感数据解密教程;
加密过程微信服务器完成,解密过程在小程序和自身服务器完成,即由 encryptData 得到如下数据:
准备知识:
以上3点对于理解解密流程非常重要 。
根据官方文档,我梳理了大致的解密流程,如下:
重点在6、7、8三个环节。
AES解密三个参数:
服务端解密流程:
下面结合小程序实例说明解密流程:
最后的效果如下:
如果你的小程序没有绑定微信开放平台,解密的数据中不包含unionid参数
小程序绑定微信开放平台连接
从解密的数据看,算得上敏感的数据只有appid;个人觉得openid不是敏感数据,每个用户针对每个公众号会产生一个安全的openid;openid只有在appid的作用域下可用。除非你的appid也泄露了。
那么可以从解密数据得到appid,微信小程序团队是何用意呢?还是前面那句话,openid脱离了appid就什么都不是,openid和appid一起为了方便小程序开发者做到不同小程序应用之间用户区分和隔离,同时能够将微信用户体系与第三方业务体系结合。
所以我认为敏感数据解密的主要用处不是解密后回传给客户端,而是在服务端将微信用户信息融入到自身业务当中。
使用sqlcipher打开EnMicroMsg.db文件先运行sqlcipher,点击File 一>OpenDatabase 一>选择桌面的那个EnMicroMsg.db文件,这时会出现这样一个对话框
这里是要求咱们输入密码,由于微信本地数据库是加密的,那么密码是什么呢,规则很简单
具体以下:
(手机IMEI + 微信uin )取MD5的前7位
手机的IMEI获取:手机拨号盘输入:*#06# ,你或者用android代码获取能够,怎么都行
微信uin的获取,我是经过网页版微信,我用的是win10的那个Edge浏览器,打开F12开发人员工具,选择网络,而后随便 *** 做或者聊天,就能够看到了
而后百度打开在线md5加密:输入IMEI+wxuin,进行加密,选择32位小写的前七个字符串便可;
而后将这七位字符串输入到sqlcipher中,就顺利的打开了
接下来就能够愉快的查看表结构了,还能够选择Browse Data查看数据,也能够选择Execute SQL执行sql语句了。
到这里就已经完全打开了微信手机本地的数据库了,
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)