android签名算法怎么实现
发表于:2024-11-18 作者:千家信息网编辑
千家信息网最后更新 2024年11月18日,本文小编为大家详细介绍"android签名算法怎么实现",内容详细,步骤清晰,细节处理妥当,希望这篇"android签名算法怎么实现"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知
千家信息网最后更新 2024年11月18日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安全错误
数据库的锁怎样保障安全
魔兽世界科多兽数据库
网络安全手抄报水彩画
惩罚者美剧软件开发
语音服务器搭建
中国法学家数据库
市网络安全要求
徐汇区无线网络技术五星服务
wal 数据库
云计算机怎么访问本地服务器
北京云服务器公司云空间
好用的文件共享服务器
小米移动互联网科技园方位
数据库源数据是什么
ip城市数据库
柬埔寨赌场网络安全
南京求职招聘软件开发
软件开发工程全国排名
嵌入式软件开发定做
上海常见软件开发价格走势
服务器主机需要电源吗
思科网络安全基础期末考试
2008服务器系统下载官网
世界杯博彩app软件开发
服务器安全组开放21端口
软件开发业成本分录
山东合赢网络技术有限公司
数据库 %type
数据库以后的发展方向
相城区推广网络技术成本
护苗网络安全课讲稿