WhatsApp网页版扫码分析
一、简要概述
扫码登录本质上是WhatsApp的多设备登录,设备之间可以独立运行,那么当我们首次通过WhatsApp扫码登录二维码时,到底发生了那些事情?交换了那些数据?下面我们来一一分析。
二、流程分析
1、设备新增
网页上你看到的二维码本质是一串字符串,类似这样的2@Z1vEcXIs2pVu2TXNnSm2M3GSQdS5VbnujYPgk7yRk357uJBHWcXgZxAq3tYsWYkLqScOgTKIVkdpIw==,5LCR7sLmRYEbIyruSadIYH7papJluPHeuW+MP7ID0g0=,98YjOiyooXXYnPMrR067bV7VwjkMdxj0ODihSahmYWk=,NQQNAuKalfLUvC9m5G/ejCDum7yIePRT3hXGUj6prsA
当手机端扫码时,其实会向服务器发送一个注册设备的包文:
<iq to="s.whatsapp.net" id="01" xmlns="md" type="set">
<pair-device>
<ref>
【82】32407755673975382f477644483455387a504839423676614d32727461414655716f4a72567367477a514b67484a476d6748766d754154675a4d51554942434564346c502b546c5078774f43593742773d3d
</ref>
<pub-key>
【32】705cd8b4702cc80fafd494d91b5a591124e11b93c7b70843b0579eff82fb3b5e
</pub-key>
<device-identity>
【151】0a730a0d08facff56810999984960618011220eab123e25a04fe5f7f8810e1f62bc8cba9e84a897b871b51b4eeee038ba6f4011a40b7e19b413ba6d3a3324bb4c23220967b0d265472f3633813ac5ecec81616a194a37ebe2d1d38e1ea8ac36776e3f10265a65252ec9b61b20118b683a6652c2d0c12204d37570cfa6bd0fcf3c3c1e99eafd076da834fd91df29f4839fc9191e4b621be
</device-identity>
<key-index-list ts="1656818841">
【85】0a1108facff568109999849606180122020001124099f9028ef861f8528e71a88f75a24c9c0ce0041f1448718f53451bf61284eed22fc17808dfca520b62f89b1008035c4a575a00d35ef389ab3211fdc6b4c0790d
</key-index-list>
</pair-device>
</iq>
如果二维码没有失效,那么服务器会回如下的包文。
<iq from="s.whatsapp.net" type="result" id="024">
<companion-props>
【17】0a0757696e646f77731202080718012000
</companion-props>
<device jid="919835597570.0:1@s.whatsapp.net">
</device>
</iq>
2、状态同步
新增成功后那么得同步一些用户的设置,比如本地语音,通讯录,快捷回复等
<iq to="s.whatsapp.net" xmlns="w:sync:app:state" type="set" id="01d">
<sync data_namespace="3">
<collection name="critical_block" order="1">
<patch>
【404】12970108001292010a220a208a66e9d8c5f2320476f9bae3bd8dc8ee61f25b865c5272598934e2d51694c23612620a606d795f7e4b2ec312e581a9bab087cbc8cefef3239c46299de775673ad902b906cfa11f529a05713af467367cffc3c5ee32622aba0d1ecab8c91dff87197e88ffc3ae08abe23273c6e22a824290b239c7c2e8609052f81ac86d91aeaf7a3fc7921a080a0600000000a86912a701080012a2010a220a209ecef8b6d487080505db9c960b2685b12fa26c98c2be65b6c6c0a81aca9f524012720a701684c12e2ccbc54a0eaa7e78d197f19bae252264fecf6fed74e75f30fedbb2a6a25d1b32d77460c20dcd8506f7d9e38bc2ca8e380598e2b684521cf35c66eb7c7aff2733cab330fec09ebd018b5bc1d94dd3f2132893914bfea676ea96a13267c3c6bf0c36610bc370fc10869d71f2801a080a0600000000a86922206015d579516eb3a167e01731d0dc48798b2528d28475864fac485d46613f81cc2a207325925c7ab55d93fc6c28d4aa1ef609a7e9d16ecc2b061bc8eb6580c576947e32080a0600000000a8694000
</patch>
</collection>
</sync>
</iq>
3、消息同步
同时也会同步一些历史消息
<message to="919864389407.0:1@s.whatsapp.net" type="text" id="BBF1F8D8AF594B6A814BE4976C486C51" category="peer">
<enc v="2" type="pkmsg">
【407】3308241221054e5599049837dcfc96c545338178df271061cf380d37799a13b527e28893421e1a21058c303083b8aa92a592288180effe4e0c18ad27d0199f81004f19647f8f03415322c302330a210547e81d93196ef861590f0d93b85db8df8d502302e77eca8a93afe3dc220fe66110051800229002003449368c66ba7884b80bca8114844cb10de71da648b9d44013c4f5424fd88c0dbd9b4f39dc732f9d4383b1fc4ba8ddd4a3c1faf5386ac62404580634430066ef376d8807a24a272f6345972427061678583a4b3b08219422196f2fb1be917be751c05739941aff54459526ca7dd19b82c633e5507f4c8de3914b056912dabad6938bba6057a812df5c61376f971cc71715c95eb7d8f8a7d4b50c9ec653d4c50efdb5beed0aa015c956faf2f37c6acb68847498eb808fdf5ac95370b678fd17890cd4b8f2f5704958bc316a253c702116c2f812fa5f0e8512a22edb7a319b9c0ec6b23563ca33430347e059849ddb3ff33e301058ec63e518594e91d579a0189d2bbc4521ca00568d283174339bd5dd770464e5202c8bb128e89893a4013001
</enc>
</message>
4、网页端设备上线
<presence type="probe" to="919864389407.0:1@s.whatsapp.net">
</presence>
<presence from="919864389407.0:1@s.whatsapp.net" type="unavailable" last="none">
</presence>
<presence from="918877597077.0:1@s.whatsapp.net">
</presence>
三、业务场景
1、同步通讯录
2、设置网页语音
3、设置快捷回复
---------------------------------------
欢迎技术交流
联系方式:
QQ: 2730002119
WhatsApp网页版扫码分析相关推荐
- java实现简单扫码登录功能(模仿微信网页版扫码)
java实现简单扫码登录功能 模仿微信pc网页版扫码登录 使用js代码生成qrcode二维码减轻服务器压力 js循环请求服务端,判断是否qrcode被扫 二维码超时失效功能 二维码被扫成功登录,服务端 ...
- [微信] 微信网页版扫码登录的实现
我们先来回顾一下微信网页版的扫码登录过程 1. 打开微信网页版,https://wx.qq.com/ 2. 打开手机微信客户端,扫一扫 3. 点击确定,登录 看似简单的操作流程,中间涉及的数据交互有很 ...
- java实现扫码微信登录_java实现简单扫码登录功能(模仿微信网页版扫码)
public class PoolCache { // 缓存超时时间 10分钟 private static Long timeOutSecond = 10 * 60 * 1000L; // 每半小时 ...
- WhatsApp网页版登陆,WhatsApp官网入口
WhatsApp网页版登录网址: https://web.whatsapp.com/ [需翻墙环境] https://www.whatsapp5.com/ [免翻墙版] 此网址为WhatsApp官网网 ...
- WhatsApp电脑版和WhatsApp网页版区别?
WhatsApp电脑版是可以在电脑上直接安装的版本,目前支持Windows系统和Mac系统. 具体下载方式,打开WhatsApp官网,然后点击 "Mac 或 Windows PC" ...
- 微信开放平台开发——网页微信扫码登录(OAuth2.0)
1.OAuth2.0 OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用. 允许用户提供 ...
- Java 语言实现简易版扫码登录
基本介绍 相信大家对二维码都不陌生,生活中到处充斥着扫码登录的场景,如登录网页版微信.支付宝等.最近学习了一下扫码登录的原理,感觉蛮有趣的,于是自己实现了一个简易版扫码登录的 Demo,以此记录一下学 ...
- Spring boot 项目(十二)——实现电脑网页微信扫码自动授权
引言 电脑端微信网页扫码授权登录有2种方式: 第一种:基于微信公众号,单独获取登录二维码扫码,然后扫码登录,程序控制跳转逻辑,例如CSDN 第二种:基于微信开放平台,跳转到微信二维码页面进行扫码登录, ...
- 羊了个羊游戏h5网页版源码
羊了个羊游戏h5网页版源码 h5网页版,数据还是官方的,一个小demo. 无后台下载附件源码,上传至服务器访问域名即可 不可商业,不可商业,不可商业 只限交流学习 免广告用道具 下载地址 https: ...
- 照片背景底色更换工具二(python+flask网页版源码及打包)
照片背景底色更换工具二(python+flask网页版源码及打包) 所有源码 文件结构 static images huaman_src_test.jpg huaman_result_test.png ...
最新文章
- vmware 虚拟机控制台打开慢的解决方案
- Exchange2007中创建和访问公用文件夹
- [导入]第 3 章 Enterprise Library 的设计
- js一个大盒子中有三个小盒子_寒假预习:一万有多大,数一数估一估,亲身感觉一万有多大...
- 状态机复合状态 怎么写代码_状态不属于代码
- python列表截取双冒号“::“用法
- 华为U9508一键root
- 【PS】抠图,快速选择工具
- jcp jsr_JCP EC 2011年特别选举结果即将公布!
- ktor启动报错:Module function cannot be found for the fully qualified name 'ApplicationKt.module'
- CC1310 架构组成,TX/RX+WOR嗅探过程,低功耗方法
- 固本培元之二:字符串和转义符
- Bezier曲线、B样条和NURBS的基本概念
- python软件下载-Python3.8下载
- 微型计算机上面的Tab键,电脑键盘上Tab 键的神奇之处!(用途详解)
- MyIE9浏览器要告微软捆绑IE
- 美国iPhone出新品,苹果新总部也将竣工,哪个更让你期待?
- 【postman】postman中文传参出错
- JVM 内存分析工具 - MAT
- linux 印刷电路板软件,linux eda软件下载