js逆向-md5加密算法逆向-案例网站

news2024/11/15 9:32:25

今天逆向的网站:aHR0cHM6Ly9mYW55aS55b3VkYW8uY29tL2luZGV4Lmh0bWwjLw==

(去在线网站进行base64解密即可)

1、点击翻译,触发请求

 

可以看到sign参数加密,加密长度为32为

md5加密特征:

  • **长度固定。**无论输入的数据长度是多少字节,输出总32位字符。
  • **不可逆。**即无法通过MD5值反推出原始数据。
  • **抗修改性。**对原始数据进行的任何改动,甚至是一个字节的修改,都会导致MD5值显著不同。
  • **抗碰撞性。**要找到两个具有相同MD5值的不同数据非常困难。

由此我们可以判断,它属于md5加密

2、输入快捷键ctrl+shift+f  打开全局搜索  搜索被加密参数sign:

 

3、我们点击第一个js文件 ,进入内部,可以看到sign:h(t,e)

4、给sign:h(t,e)这行代码加上断点,点击翻译触发断点

 

5、控制台输出参数t和e

可以看到参数t类似时间戳,参数e是一个字符串,经过笔者验证,e为固定字符串

t=(new Date).getTime();   获取时间戳的方法

6、进入h方法内部-鼠标放在h方法,点击蓝色字符那里,点击即可进入h方法内部

 7、我们给h方法加上断点 

 

8、点击右上角的三角形,执行h方法

 可以看到使用g进行加密:

g(`client=${d}&mysticTime=${e}&product=${u}&key=${t}`)

类似于python的格式化字符串传参,传入了参数d和e和u和t

分别看看他们的数据结果是什么:

//时间戳  变化
e=(new Date).getTime();

//固定参数
t='fsdsogkndfokasodnaso'
d='fanyideskweb'
u='webfanyi'

 得出结论:

使用g方法对这个字符串(d,t,u,t)进行加密:`client=${d}&mysticTime=${e}&product=${u}&key=${t}`

结果:

'client=fanyideskweb&mysticTime=1687839695433&product=webfanyi&key=fsdsogkndfokasodnaso'

最后使用g方法对进行加密

7、我们刚才大概猜测到加密方法为md5,我们使用g方法加密字符串'1'的结果:

8、我们对比标准加密算法,对字符串'1'进行加密是否和g方法的加密结果是否一致:

      可以看到,标准加密的结果和g方法是一致的,由此,g属于标准加密,

9、我们使用js标准加密算法库(crypto-js)进行加密

 

 可以看到我们使用js标准库加密和逆向的网站的结果是一样的

js逆向代码(sign参数):

Crypto=require('crypto-js')

function h(e, t) {
                d='fanyideskweb'
                u='webfanyi'

            //格式化字符串  最后转为字符串
                return Crypto.MD5(`client=${d}&mysticTime=${e}&product=${u}&key=${t}`).toString()
            }

//传入e(时间戳)和t参数

//时间戳
e=(new Date).getTime();

//固定参数
t='fsdsogkndfokasodnaso'

//调用h方法,入e(时间戳)和t参数
console.log(h(e, t));

今天的教程就到这里,有帮助记得点赞!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/690661.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于树莓派4B的YOLOv5-Lite目标检测的移植与部署(含训练教程)

前言:本文为手把手教学树莓派4B项目——YOLOv5-Lite目标检测,本次项目采用树莓派4B(Cortex-A72)作为核心 CPU 进行部署。该篇博客算是深度学习理论的初步实战,选择的网络模型为 YOLOv5 模型的变种 YOLOv5-Lite 模型。Y…

记一次解决vmware安装windows server 2019时, 虚拟机网络电缆被拔出,连不上网的问题

项目场景: 项目需要基于electron开发桌面端软件,实现前后端项目的自动化部署、可视化配置等功能,经过需求分析后,确定首先要适配的场景即:通过桌面端软件远程连接,在桌面端软件中执行安装、运行、配置等一…

用ZLmediaKit流媒体服务器时候遇到的常规问题

照zlmediakit的源码 自己复制了一份 然后有的地方编译不过修改了部分 测试的时候发现有两个问题 第一是 ffmpeg的ffplay 能播放 vlc不能播放 第二个问题是directProxy设置为0的时候 推流的时候 然后用ffplay播放 只有音频没有视频 查了好久终于解决这个问题 第一个…

Verilog/C++实现排序算法

Verilog/C实现排序算法 1、冒泡排序算法 冒泡排序是一种简单的交换类排序。 冒泡排序算法的原理如下: 1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。2、对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一…

深入解析Spring Boot:构建现代化Java应用程序的利器

深入解析Spring Boot:构建现代化Java应用程序的利器 文章目录 导言1. 简化的开发流程2. 内嵌的Web服务器3. 自动配置4. 健康检查和监控5. 外部化配置6. 强大的生态系统小结 导言 Spring Boot 是一个开源的Java框架,旨在简化和加速Java应用程序的开发过程…

关于CSPM国标证书(项目管理专业人员能力评价)

先来回答一下粉丝提问: 1、软考高项可以对标吗? 答案:软考高项是不可以对标的。 2、Prince2可以对应哪一个级别? 答案:哪一个级别都不可以对标,目前可对标的是PMI,IPMA、HCSE-PM(华…

代码随想录二刷day35 |贪心 之 860.柠檬水找零 406.根据身高重建队列 452. 用最少数量的箭引爆气球

day35 860.柠檬水找零406.根据身高重建队列452. 用最少数量的箭引爆气球 860.柠檬水找零 题目链接 解题思路: 局部最优:遇到账单20,优先消耗美元10,完成本次找零。全局最优:完成全部账单的找零。 代码如下&#xff1a…

NodeJS NVM版本管理⑩⑧

文章目录 ✨文章有误请指正,如果觉得对你有用,请点三连一波,蟹蟹支持😘前言 N V M I n t r o d u c e NVM Introduce NVMIntroduce N V M U s e NVMUse NVMUse D o w n l o a d A n d I n s t a l l Download And Install Downloa…

DTC143ZM理解介绍(含电路应用)

前人种树,后人乘凉;创造不易,请勿迁移~ author daisy.skye的博客_CSDN博客-嵌入式,Qt,Linux领域博主 daisy.skye的博客_CSDN博客-嵌入式,Qt,Linux领域博主daisy.skye擅长嵌入式,Qt,Linux,等方面的知识https://blog.csdn.net/qq_40715266?t…

C语言sin函数学习

函数名: sin 头文件&#xff1a;<math.h> 函数原型: double sin(double x); 功 能: 正弦函数 参 数&#xff1a; double x 操作的弧度 返回值&#xff1a; 返回弧度的正弦值 1π/180弧度 这是C标准库的定义&#xff1b; #include<stdio.h>#include<mat…

普乐蛙VR太空宇宙vr星际飞船设备模拟太空飞船

科技感十足!你有没有想过自己能够亲身体验到太空飞行的感觉?这一刻&#xff0c;梦想成真! 宇航员体验 VR科技让人类走进了未知领域&#xff0c;现在&#xff0c;你可以在舒适的空间内感受宇宙中的万千风景&#xff0c;体验宇航员的工作和生活。而这次VR科技体验馆更是为你准备…

uni-easyinput连续输入出现闪动解决

原因分析&#xff1a; 是因为uni-easyinput源码中&#xff0c;在输入触发事件中一直去同步modelValue&#xff0c;而modelValue其实就是双向绑定的值&#xff08;有一定延迟&#xff09;&#xff0c;当连续输入时&#xff0c;会导致input和modelValue不一致&#xff0c;就会出…

YOLOv8遇见VisDrone 2023目标检测挑战赛-YOLOv8实战VisDrone无人机目标检测(视频教程)

课程链接&#xff1a;https://edu.csdn.net/course/detail/38688 VisDrone 2023目标检测挑战赛( http://aiskyeye.com/challenge-2023/)和 ICCV 2023 顶会联合举行&#xff0c;用于检测从无人机获取的视觉数据中的物体。优胜者可出席 ICCV 2023 研讨会&#xff0c;并获得万元奖…

如何利用python做爬虫?

Python爬虫在许多情况下是非常有用的&#xff0c;爬虫可以帮助自动化地从互联网上获取大量数据。这些数据可以是产品信息、新闻文章、社交媒体内容、股票数据等通过爬虫可以减少人工收集和整理数据的工作量&#xff0c;提高效率。在软件开发中&#xff0c;可以使用爬虫来进行自…

为什么学习STM32相对困难?如何优化学习过程?

当你在学习STM32时感到困惑&#xff0c;可以考虑以下优化策略&#xff1a;理解基础概念&#xff1a;确保你对STM32的基础概念有清晰的理解&#xff0c;包括芯片架构、寄存器配置和外设功能等。通过仔细阅读官方文档、参考手册或教程&#xff0c;加深对这些概念的理解。我这里有…

Android Jetpack Compose之OutlinedButton的使用

Android Jetpack Compose是一个现代化的UI工具包&#xff0c;它让开发者可以更方便地构建出美观且功能强大的Android应用。本文将详细介绍其中的一个重要组件——OutlinedButton。 一. OutlinedButton简介 二. 如何使用OutlinedButton 三. 自定义OutlinedButton 四. Outlin…

两段代码共存于一个文件,编译时有选择的编译其中的一部分,有几种方法实现?如何实现?(笔试题)

两段代码共存于一个文件&#xff0c;编译时有选择的编译其中的一部分&#xff0c;请问有几种方法实现&#xff1f;如何实现&#xff1f; 1. 条件编译 使用预处理指令来控制代码的编译。通过在代码中添加条件编译指令&#xff0c;可以根据条件选择性地编译代码。条件编译指令通…

【每天40分钟,我们一起用50天刷完 (剑指Offer)】第八天 8/50

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客&#xff0c;如有问题交流&#xff0c;欢迎评论区留言&#xff0c;一定尽快回复&#xff01;&#xff08;大家可以去看我的专栏&#xff0c;是所有文章的目录&#xff09;   文章字体风格&#xff1a; 红色文字表示&#…

chatgpt赋能python:Python获取句柄的方法——在Windows平台上实现窗口控制

Python获取句柄的方法——在Windows平台上实现窗口控制 句柄&#xff08;Handle&#xff09;是Windows系统中非常重要的概念&#xff0c;它是一种指向资源对象的引用&#xff0c;以数字的形式来表示。在Windows上&#xff0c;所有资源对象都具有独特的句柄。窗口也是一种资源对…

【强化学习】常用算法之一 “Q-learning”

作者主页&#xff1a;爱笑的男孩。的博客_CSDN博客-深度学习,活动,python领域博主爱笑的男孩。擅长深度学习,活动,python,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?typeblog个…