Python模拟微博登录:揭秘sp与nonce加密策略
129 浏览量
更新于2024-08-29
收藏 1.31MB PDF 举报
本篇文章主要介绍了如何使用Python编写模拟微博登录功能的爬虫,针对的是微博网站(<https://weibo.com/>)。文章分为两个主要部分:
一、请求分析与登录过程
1. 首先,作者强调了登录过程的关键步骤,即找到登录页面,确定用户名和密码输入区域,并观察登录请求后的响应数据,包括如`exectime`、`nonce`、`pcid`、`pubkey`等参数。其中,`exectime`表示请求执行时间,`nonce`用于加密,`pcid`可能是用户设备标识,`pubkey`用于RSA加密。
2. 然后,作者提到`servertime`(服务端时间)和`rsakv`(可能用于进一步加密的密钥),以及`sp`(需要加密的参数)的变化,指出`servetime`是基于当前时间戳,而`sp`使用RSA或SHA1加密。`su`参数是通过Base64加密的,但具体生成方法需要进一步分析。
二、加密方式的寻找与实现
1. 调试JavaScript代码是关键步骤,通过设置断点追踪登录过程中的函数调用,作者发现`sp`使用了RSA加密,可以通过网络请求获取到微博的RSA公钥,然后在Python代码中应用这些加密算法。
2. 对于`nonce`,作者发现它并不是每次登录时都会从服务器请求,而是本地JavaScript文件中动态生成的。因此,需要在浏览器环境中分析JavaScript代码,找到生成`nonce`的函数。该函数使用了`random`库,说明它可能基于某种随机生成算法。
3. 提供了Python代码片段来导入必要的库(`random`、`rsa`和`hashlib`),表明接下来将演示如何在Python中使用这些库来模拟加密过程。
总结来说,本文的核心知识点是理解微博登录过程中的加密机制,特别是`sp`和`nonce`的生成方式,并利用Python编程语言实现模拟登录。这涉及到JavaScript代码的调试、网络请求的分析、以及RSA和Base64等加密技术的应用。对于想要学习和实践Python爬虫的同学,这部分内容是非常实用的。
2024-02-02 上传
2019-08-10 上传
2019-08-12 上传
2019-08-12 上传
2024-01-12 上传
2023-12-22 上传
weixin_38666823
- 粉丝: 5
- 资源: 971
最新资源
- NIST REFPROP问题反馈与解决方案存储库
- 掌握LeetCode习题的系统开源答案
- ctop:实现汉字按首字母拼音分类排序的PHP工具
- 微信小程序课程学习——投资融资类产品说明
- Matlab犯罪模拟器开发:探索《当蛮力失败》犯罪惩罚模型
- Java网上招聘系统实战项目源码及部署教程
- OneSky APIPHP5库:PHP5.1及以上版本的API集成
- 实时监控MySQL导入进度的bash脚本技巧
- 使用MATLAB开发交流电压脉冲生成控制系统
- ESP32安全OTA更新:原生API与WebSocket加密传输
- Sonic-Sharp: 基于《刺猬索尼克》的开源C#游戏引擎
- Java文章发布系统源码及部署教程
- CQUPT Python课程代码资源完整分享
- 易语言实现获取目录尺寸的Scripting.FileSystemObject对象方法
- Excel宾果卡生成器:自定义和打印多张卡片
- 使用HALCON实现图像二维码自动读取与解码