需求:想要获取快手短视频app的用户粉丝数

  • 声明:本博文只是作为研究学习用途,请不要用于非法、商业用途。
  • 写个帖子不容易,转载请说明出处,谢谢
  • 首先需要用Fidder抓包工具找到接口地址
  • 重点来了,快手所有的接口基本都用到了一个参数sig(数据签名)

声明:本博文只是作为研究学习用途,请不要用于非法、商业用途。

写个帖子不容易,转载请说明出处,谢谢

首先需要用Fidder抓包工具找到接口地址

这个过程省略,请参考这位博主的文章,我也是根据他的文章做的:
https://blog.csdn.net/bpp94_github/article/details/80038052

我是用的一个旧手机来进行抓包的

  1. 唯一有一点需要注意的是,我在安装证书的过程中(输入电脑ip+端口8888之后,点击了那个下载证书链接后),在手机浏览器下载管理中找到下载好的证书后,点击安装,居然提示我无法打开证书
  2. 几番百度后,找到了这个博主的帖子:
    https://blog.csdn.net/hanyu_aa/article/details/81356442
    注意:没有设置锁屏密码的话,安装的时候会提示输入凭据密码,这个时候需要先设置手机的锁屏密码,然后重启手机,再进行安装,输入锁屏密码后就搞定了

重点来了,快手所有的接口基本都用到了一个参数sig(数据签名)

接口传递的参数,用抓包工具可以看的很清楚,但是这个sig怎么来的,一脸懵逼

这个博主的帖子给了我一些灵感,但是还是不全对,地址贴出来:
https://blog.csdn.net/qq_26905283/article/details/46440215

从这个帖子中发现,计算方法是所有的参数进行一定的排序之后,再拼接上一个盐值(salt),用MD5加密得到的。
我这样做之后还是不对,有两个地方:
第一:不是所有的参数都参与排序加密;
第二:这个salt值怎么来的(没有去实验,猜测不同接口的salt有可能不一样或者隔一段时间之后该salt值会变化)
第一个问题:几经实验之后发现,所有的抓包参数除了sig和__NStokensig两个参数,其他参数都进行排序计算
第二个问题:这个salt值,我也没有搞清楚怎么来的(还望大神评论指点),我这里贴出获取粉丝数的这个salt值,其他的接口没有尝试(382700b563f4)

一下贴出我的代码:

public class SingatureUtil {private static final String FANS_SALT = "382700b563f4";public static String genSignature(Map<String,String> params,String salt) {if(params == null){return null;}String sign = "";StringBuffer sb = new StringBuffer();try {// 1. 字典升序排序SortedMap<String,String> sortedMap = new TreeMap<>(params);// 2. 拼按URL键值对Set<String> keySet = sortedMap.keySet();for(String key : keySet){//sign不参与算法if(key.equals("sig") || key.equals("__NStokensig")){continue;}String value = sortedMap.get(key);sb.append(key + "=" + URLDecoder.decode(value,"UTF-8"));}String uriString = sb.toString();uriString = uriString + salt;System.out.println("My String: \n" + uriString);// 3. MD5运算得到请求签名sign = MD5Util.md5(uriString);System.out.println("My Sign:\n" +sign);} catch (Exception e) {e.printStackTrace();}return sign;}public static Map<String,String> getMapFromStr(String str){if(StringUtils.isEmpty(str)){return null;}String[] arr = str.split("\\&");Map<String,String> map = new HashMap<>();for(String item : arr){String[] itemArr = item.split("=",2);map.put(itemArr[0],itemArr[1]);}return map;}public static void main(String[] args) throws UnsupportedEncodingException {String srcStr = "app=0&lon=104.073269&did_gt=1551777466213&c=XIAOMI&sys=ANDROID_4.4.4&isp=&mod=Xiaomi%28MI%203%29&did=ANDROID_b07d34ee8ff226b0&hotfix_ver=&ver=6.1&net=WIFI&country_code=cn&iuid=&appver=6.1.2.8197&max_memory=192&oc=XIAOMI&ftt=&kpn=KUAISHOU&ud=1273257807&language=zh-cn&kpf=ANDROID_PHONE&lat=30.537794&user=74476707&token=6f8b8954c34e4462a1c0117ac5a5af21-1273257807&os=android&client_key=3c2cd3f3&sig=8ab207f1762b17b47d1ca0cc26ce6576&__NStokensig=334b7f77f9fec536c1dce00467f8cf79bed4f66cd8a24ffc205b3e1a151ab1e7";genSignature(getMapFromStr(srcStr),FANS_SALT);}
}运行结果如下:
My String:
app=0appver=6.1.2.8197c=XIAOMIclient_key=3c2cd3f3country_code=cndid=ANDROID_b07d34ee8ff226b0did_gt=1551777466213ftt=hotfix_ver=isp=iuid=kpf=ANDROID_PHONEkpn=KUAISHOUlanguage=zh-cnlat=30.537794lon=104.073269max_memory=192mod=Xiaomi(MI 3)net=WIFIoc=XIAOMIos=androidsys=ANDROID_4.4.4token=6f8b8954c34e4462a1c0117ac5a5af21-1273257807ud=1273257807user=74476707ver=6.1382700b563f4
My Sign:
8ab207f1762b17b47d1ca0cc26ce6576Process finished with exit code 0


写个这个帖子也是希望能帮到需要的小伙伴,我也是百度找了好久都没有靠谱的帖子,翻墙google也没有,伤心啊。。。

快手 sig(sign)签名算法 java版相关推荐

  1. 快手签名算法php,快手 sig(sign)签名算法 java版

    需求:想要获取快手短视频app的用户粉丝数 声明:本博文只是作为研究学习用途,请不要用于非法.商业用途. 写个帖子不容易,转载请说明出处,谢谢 首先需要用Fidder抓包工具找到接口地址 重点来了,快 ...

  2. 快手sig签名,python版,可用于快手关键字搜索结果采集

    很多大佬分享了快手sig参数逆向破解的过程,我只是在大佬的基础上把sig加密部分代码转成python. sig生成原理:把url问号后面的参数转成dict,同时把form_data参数放在同一个dic ...

  3. java rsa数字签名_RSA 数字签名算法(Java版)

    数字签名算法Java版 还是上代码吧 public static final String SIGN_ALGORITHMS = "SHA1WithRSA"; /** * RSA签名 ...

  4. RSA 数字签名算法(Java版)

    数字签名算法Java版 还是上代码吧 public static final String SIGN_ALGORITHMS = "SHA1WithRSA";/*** RSA签名* ...

  5. 腾讯开放平台接口鉴权(计算签名)工具类 java版

    腾讯开放平台 接口鉴权(签名)工具类 java版 用到了Hutool工具类 package top.seasmall.platform.core.config.nettyws.util;import ...

  6. 我的世界java版移除猪灵了吗_我的世界:激怒僵尸猪灵有奖励,用菌光体堆肥,修复126个漏洞!...

    我的世界Java版1.16pre3(第三个预发布版)已经更新,玩家们从中可以看到一些内容被Mojang调整.首先,下界传送门方块加入战利品表,新增部分常规标签,影响不是很大.按照这样的速度,玩家们等到 ...

  7. Java版人脸检测详解上篇:运行环境的Docker镜像(CentOS+JDK+OpenCV)

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 如果您看过<三分钟极速体验:Java版 ...

  8. 《克隆人的进攻》面向对象Java版

    Java Q&A Java 问答 Attack of the clones 克隆人的进攻 之 面向对象Java版 Time and space considerations in four d ...

  9. nodejs调用建行互联网银企被扫支付接口Java版加解密Demo

    环境:nodejs+eclipse+child_process模块+建行互联网银企被扫支付接口文档V2.2.6 总体步骤如下: 1.将建行Java版加密Demo打包成jar包:CCBParam.jar ...

最新文章

  1. Solr_全文检索引擎系统
  2. 三角函数公式、诱导公式
  3. re搜索字符串与find字符串不一样的结果
  4. Mule web service调用中的复杂类型传递
  5. 苹果电脑无法用普通域用户加入域,用域管理员却可以,怎么破!?
  6. 查看和设置mysql字符集
  7. pcb设计单点接地示意图_答案:关于PCB 的EMC设计知识考卷
  8. jeecg中ajax传值的前端js和后台代码
  9. 超可爱桌面电子宠物下载
  10. placement new操作符
  11. linux网络配置出现E325,Linux CentOS E325错误,如何解决?VI如何使用?
  12. Git应用之eclipse解决冲突代码
  13. 图解HTTP笔记(一)
  14. easyui获取图片路径_094 ego电商项目-2 菜单、图片上传、CRUD
  15. 五大媒体播放器的Andr​​oid
  16. AD13如何导出坐标文件
  17. 全国全量企业工商数据分析报告1
  18. 网站根目录与服务器根目录,根目录在哪里_网站的根目录在哪?急急!!!
  19. K核苷酸频率(KNF,k-nucleotide frequencies)或K-mer频率
  20. realme真我Q5和iQOOz6pro哪个值得买 两者配置对比

热门文章

  1. 0.45秒!以太坊平均网络传输时间又双叒叕缩短了;以太坊全球节点分布覆盖英国、法国及德国...
  2. LOJ#3054. 「HNOI 2019」鱼
  3. xpath提取当当网数学书前十页信息
  4. object-c 基础动画的学习总结
  5. 浅谈Mesh组网与AC+AP组网区别
  6. cocos2dx3.2打包apk
  7. 百度 android 市场,百度
  8. 线性代数(9)——初等矩阵和矩阵可逆性(上)
  9. php文件如何转音频,如何转换音频文件,mp3格式转换器,音频格式转换器,
  10. Typora+阿里云OSS(将图片上传到阿里云服务器上)