android签名算法怎么实现
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,本文小编为大家详细介绍"android签名算法怎么实现",内容详细,步骤清晰,细节处理妥当,希望这篇"android签名算法怎么实现"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知
千家信息网最后更新 2025年02月02日android签名算法怎么实现
本文小编为大家详细介绍"android签名算法怎么实现",内容详细,步骤清晰,细节处理妥当,希望这篇"android签名算法怎么实现"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
1、抓包工具抓取一个请求
POST /rest/n/feed/nearby?app=0&kpf=ANDROID_PHONE&ver=6.5&c=HUAWEI_KWAI&mod=HUAWEI%28HWI-AL00%29&appver=6.5.5.9591&ftt=&isp=CUCC&kpn=KUAISHOU&lon=102.698614&language=zh-cn&sys=ANDROID_9&max_memory=384&ud=0&country_code=cn&oc=HUAWEI_KWAI&hotfix_ver=&did_gt=1584622753889&iuid=&net=WIFI&did=ANDROID_9ba4839bf09a1834&lat=25.002707 HTTP/1.1 type=10&page=1&token=&count=20&id=9&refreshTimes=0&coldStart=false&source=1&browseType=1&seid=60ed7899-e25e-4b9b-b971-3f75b4df00fd&os=android&sig=75e33af6cb4a795c039e0f94a9bd27bf&client_key=3c2cd3f3
2、分析
可以看到请求的参数中,有一个字段叫sig,我们主要要做的工作就是通过参数计算出这个sig,通过逆向分析发现,这个sig计算方式为:
把url中的参数放入map1中;
把表单中的参数放入map2中;
把map1和map2中的元素以key=value的形式放入arraylist中对arraylist进行排序;
把arraylist中的元素按顺序拼接成一个字符串str;
把str转成bytearray;
调用CPU.getClock(),传入str计算签名;
CPU.getClock()是一个native方法,在libcore.so中实现
3、放代码
from sig import signatureimport requestspara = { "app":"0", "kpf":"ANDROID_PHONE", "ver":"6.5", "c":"HUAWEI_KWAI", "mod":"HUAWEI(HWI-AL00)", "appver":"6.5.5.9591", # "ftt":"", "isp":"CUCC", "kpn":"KUAISHOU", # "lon":"102.698614", "language":"zh-cn", "sys":"ANDROID_9", "max_memory":"384", "ud":"0", "country_code":"cn", "oc":"HUAWEI_KWAI", # "hotfix_ver":"", "did_gt":"1584622753889", # "iuid":"", "net":"WIFI", "did":"ANDROID_9ba4839bf09a1834", # "lat":"25.002707"}post = { "type":"10", "page":"1", "token":"", "count":"20", "id":"9", "refreshTimes":"0", "coldStart":"false", "source":"1", "browseType":"1", "seid":"60ed7899-e25e-4b9b-b971-3f75b4df00fd", "os":"android", "client_key":"3c2cd3f3"}j = signature.WeChat_YY_yhzf.sig_post("https://apissl.ksapisrv.com/rest/n/feed/nearby",para,post)header = {"Content-Type":"application/x-www-form-urlencoded"} resp = requests.post(j["para"], data=j["data"],headers=header)print(resp.text)
请求结果如下:
cdn.nlark.com/yuque/0/2020/png/97322/1606958397549-a4664517-e9df-496f-8f5f-8816042a6582.png?x-oss-process=image/resize,w_1500">
读到这里,这篇"android签名算法怎么实现"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。
参数
算法
文章
元素
内容
分析
妥当
代码
字段
字符
字符串
就是
工具
形式
思路
新知
方式
方法
更多
步骤
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
服务器塔式机箱
网络技术和通讯技术
文明上网的网络安全手抄报
mock 数据库
服务器存储拓扑图
嵌入式软件开发专业代码
黑科技征服互联网
注塑机服务器与处理器
互联网智能科技化
深圳蜂巢网络技术有限公司
网络安全专业的作用
数据库表查如一条数据
网络安全管理分析
宁波海曙区服务器硬盘
中国电子云网络安全市场
奉贤区正规软件开发解决方案
手机连接云服务器显示主机已断开
广州软件开发前三
南阳软件开发培训
江苏常规软件开发价目表
数据库如何导出所有数据库
unreal 服务器
数据库系统和文件系统的主要区别
cdn和缓存服务器有什么不同
国开数据库机考答案
数据库报表平台
拉卡拉为啥连接不上服务器
抖音官方视频储存服务器
oracle数据库整数如何表达
神通数据库端口被占用