首页 > 其他分享 >财联社加密参数(解密教程、纯算代码)

财联社加密参数(解密教程、纯算代码)

时间:2024-12-27 18:58:33浏览次数:7  
标签:联社 加密 请求 解密 生成 参数 纯算 3.2 sign

==请帮忙点点赞,点个关注,谢谢!!==


官网地址:财联社

本文发布的技术与代码仅供技术交流和学习使用,严禁用于数据采集等任何违法活动。请确保合法使用,并独立承担不当使用带来的法律责任。

一、逆向教程

1.我们先来看看请求参数

有个加密参数“sign”,多个翻页结果来对比,似乎是通过last_time来控制的。(让后端知道从什么时候的文章开始返回)

2.解密函数的定位

请出我们的冒号大法。

找了一圈,这个好像挺像,绿框里面的参数在我们的请求负载也有。那确实挺像的,直接上断点。

r是我们请求负载,返回了加密参数,那就是这里了。

3.深入分析

让我们逐层分析

3.1 a()方法分析

先让我们来看看这个方法他返回的是个啥。

这不是我们的请求负载 r 一样的嘛.....再让我们来验证一下直接传r给 p() 方法行不行。

斯.....还是一样,那一样就不管了,直接删a()方法。

3.2 p()方法分析

那还等什么,已经知道p()就是加密方法了。直接进去。

跳转到这里了,直接给上首尾断点

先不着急进去,看看这个函数都干了些啥。

1. 生成了一个t

2. 调用r.sync()方法传入生成的t,结果又赋值给了t

3. 调用o()方法传入生成的t,结果又赋值给了t

4. 返回t

emmm....挺搞人的,那来一部分一部分的看吧。

3.2.1 生成了一个t(上文描述的第一步)

先看看这个t最初生成的是啥。

这是把我们的请求负载给拼接成http get请求参数的格式了 

3.2.2 调用r.sync()方法传入生成的t,结果又赋值给了t(上文描述的第二步)

接着来看看r.sync(t)的结果是个啥

生成了一个密文,40位???速想!有什么加密是40位的。(SHA1生成40位加密参数)

来验证一下

对上咯!!确定是SHA1加密了。

3.2.2 调用o()方法传入生成的t,结果又赋值给了t(上文描述的第三步)

接着来看看o(t)的结果是个啥

还是生成了一个密文,32位???速想!有什么加密是32位的。(MD5可生成32位加密参数,这再熟悉不过了吧)

再来验证一下

Congratulations!!!又对上了。

3.2.3 p()方法分析结果总结

p()方法就是将请求负载先拼接成http get请求参数格式的字符串,然后将该字符串进行SHA1加密再进行MD5加密。

二、加密纯算代码

import urllib.parse
import hashlib
import requests



params = {
    'app': 'CailianpressWeb',
    'id': '1000',
    'last_time': '1735251626',
    'os': 'web',
    'rn': '20',
    'sv': '8.4.6',
}

# 对字典的键进行排序,并生成排序后的查询字符串
sorted_data = sorted(params.items(), key=lambda item: item[0])  # 按key排序
query_string = urllib.parse.urlencode(sorted_data)  # 转换为URL编码的字符串

# 使用SHA1加密
sha1_hash = hashlib.sha1(query_string.encode('utf-8')).hexdigest()

# 对SHA1加密的结果再进行MD5加密
sign = hashlib.md5(sha1_hash.encode('utf-8')).hexdigest()

# 向请求负载中添加sign
params['sign'] = sign

response = requests.get('请求自己写', params=params)

运行结果:

标签:联社,加密,请求,解密,生成,参数,纯算,3.2,sign
From: https://blog.csdn.net/m0_60082046/article/details/144774637

相关文章

  • 24. 解密犯罪时间
    题目描述警察在侦破一个案件时,得到了线人给出的可能犯罪时间,形如“HH:MM”表示的时刻。根据警察和线人的约定,为了隐蔽,该时间是修改过的,解密规则为:利用当前出现过的数字,构造下一个距离当前时间最近的时刻,则该时间为可能的犯罪时间。每个出现数字都可以被无限次使用。输入描......
  • 微信4.0数据库文件解密工具
    仓库:https://github.com/0xlane/wechat-dump-rs该工具用于导出正在运行中的微信进程的key并自动解密所有微信数据库文件以及导出key后数据库文件离线解密。微信4.0重构后改用HMAC_SHA512算法,寻找key的方式和v3不同,工具内仍然采用内存暴力搜索的方式,对于v4解密时将......
  • 纯JS加密+时间校验(没引用任何框架),Java解密
    1、JS加密functioncaesarEncrypt(text,shift){ letstr="G7bCk1Xf2A9qLmJ0pVrTz5D4oS6wEhN"+Date.now().toString(); returnstr.split('') .map(char=>String.fromCharCode(char.charCodeAt(0)+3)) .join('');}2、Java校验......
  • 跑了12公里却评分倒数?解密足球场上的隐形英雄
    跑了12公里却评分倒数?解密足球场上的隐形英雄足球场上,光鲜亮丽的射门与进球总是吸引着人们的目光,但那些默默无闻却跑动距离惊人的球员,往往被数据评分系统低估。他们是场上的“隐形英雄”,扮演着无比重要的角色,却很少得到应有的关注。为什么跑了12公里的球员,评分却不高?让我们从......
  • webshell-decryptor:一款使用python tkinter进行GUI开发的Webshell自动解密流量分析工
    免责声明该公众号分享的安全工具和项目均来源于网络,仅供安全研究与学习之用,如用于其他用途,由使用者承担全部法律及连带责任,与工具作者和本公众号无关。工具介绍webshell-decryptor是一款使用pythontkinter进行GUI开发的Webshell自动解密流量分析工具,可通过获取到的webshell......
  • 关于SM4加解密的记录
    开头:最近对接的项目要求对用户信息进行SM4加秘传递,所以了解了一下使用方法1,使用方式安装依赖:npmi gm-crypto2,使用 const{SM4}=require('gm-crypto')constkey='0123456789abcdeffedcba9876543210'//Anystringof32hexadecimaldigitsconstoriginalData=......
  • 某东h5st5.0 最新加密分析 纯算js python调用补环境
    声明:本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!有相关问题请第一时间头像私信联系我删除博客!前言简单分析一下某东的h5st加密流程第一步很简单,直接......
  • 【唐叔学算法】第18天:解密选择排序的双重魅力-直接选择排序与堆排序的Java实现及性能
    引言在数据排序的世界里,选择排序是一类简单而直观的算法,它通过不断选取未排序部分中的最小(或最大)元素来逐步构建有序序列。今天,我们将深入探讨两种基于选择思想的排序方法——直接选择排序和堆排序,并提供它们的Java实现代码。此外,我们还会分析这两种排序算法的时间复杂度和......
  • 安卓秘钥的获取+解密流程
    安卓秘钥的获取‍注意:改文章原文链接:https://www.freebuf.com/articles/database/375523.html抄一遍,脑瓜子有点记忆。1、原理图​​2、视频解密方法根据上述原理,只要我们能拿到CDM、抓到license服务器请求url,即可构造解密请求报文,获得解密key。但CDM作为播放器的预置模块,没......
  • WideVineDRM视频解密
    WideVineDRM视频解密本文的目的只是为了能够简单的了解一下WideVineDRM1、认识流媒体流媒体(StreamingMedia)是一种通过网络实时传输数据的技术,使用户能够在不必先下载完整文件的情况下,边接收数据边播放音频、视频或其他多媒体内容。换句话说,流媒体技术可以让我们直接观看或收听......