dedecms图片网站模板/优化大师最新版本
目录
1、什么是JS、JS反爬是什么?JS逆向是什么?
2、JS逆向的大致流程
3、逆向的环境搭建
3.1、安装node.js
3.2、安装js代码调试工具(vscode)
3.3、安装PyExecJs模块
4、JS常见加密算法
4.1、Base64算法
4.2、MD5算法
4.3、DES/AES算法
4.2.2 AES与DES的区别
4.4、RSA算法
4.5 JS算法注意点
5、chrome常见调试技巧
6、Base64编码详讲
Base64编码由来
Base64编码原理分析参考
Base64在python中的应用
7、MD5详讲
一、MD5加密是什么?
二、MD5加密解密的原理?
三、MD5算法的用途
1、什么是JS、JS反爬是什么?JS逆向是什么?
JS: JS全称JavaScript 是互联网上最流行的脚本语言,这门语言可用于 HTML 和 web,更可广泛用于服务器、PC、笔记本电脑、平板电脑和智能手机等设备。JavaScript 是一种轻量级的编程语言。JavaScript 是可插入 HTML 页面的编程代码。JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行。 JS反爬: JS反爬是指爬虫在获取网页数据时,遇到了通过JavaScript代码爬实现的反措施。JS反爬技术的实现方式包括动态渲染、异步加载、验证码、IP限制等多种方式。这些技术可以有效地防止爬虫的抓取,保护网站的数据安全。 JS逆向: JS逆向是指通过分析和破解JavaScript代码,获取反爬措施的规则和实现方式,从而绕过反爬措施,实现爬虫的抓取。JS逆向需要具备一定的JavaScript编程能力和代码分析能力,对于爬虫开发者来说是一项高级的技能。 需要注意的是,进行JS逆向可能会涉及到法律风险和道德问题,因此在进行爬虫开发时,应该遵守相关法规和道德规范,避免侵犯他人的合法权益。 <a name="FqXCK"></a>
2、JS逆向的大致流程
-
分析目标网站的反爬措施:使用浏览器开发者工具或网络抓包工具分析目标网站的JavaScript代码和网络请求数据,了解反爬措施的实现方式和规则。常见的反爬措施包括动态渲染、异步加载、验证码、IP限制等。
-
理解和分析JavaScript代码:使用代码编辑器或开发者工具等工具,分析网站的JavaScript代码,了解其运行原理、代码结构和实现方式。这可以帮助你找到反爬措施的规则和实现方式,从而更好地绕过它们。
-
绕过反爬措施:根据分析结果,采用相应的技术和方法绕过反爬措施。比如,对于动态渲染的网页,可以使用无头浏览器(如Selenium)模拟浏览器的操作,从而获取渲染后的网页数据;对于异步加载的网页,可以使用JavaScript库(如Puppeteer)模拟浏览器的异步请求,从而获取异步加载后的数据;对于验证码的网站,可以使用打码平台或自动识别技术(如OCR)来识别验证码。
-
调试和优化:进行调试和优化,确保爬虫程序能够稳定地运行,并且能够在反爬措施更新后及时进行适配。
需要注意的是,JS逆向需要具备一定的JavaScript编程能力和代码分析能力,不同的网站可能有不同的反爬措施和实现方式,因此需要根据具体情况采用不同的技术和方法进行绕过。同时,在进行JS逆向时,需要遵守相关法规和道德规范,避免侵犯他人的合法权益。 <a name="UJgyk"></a>
3、逆向的环境搭建
3.1、安装node.js
下载网站:Download | Node.js 参考网站:Node.js安装与环境配置_各自安好、的博客-CSDN博客 <a name="ww4wp"></a>
3.2、安装js代码调试工具(vscode)
下载网站: Download Visual Studio Code - Mac, Linux, Windows 参数网站:https://www.cnblogs.com/csji/p/13558221.html 运行js代码插件: 在VSCode中直接运行js代码 - 简书 <a name="uj7Ex"></a>
3.3、安装PyExecJs模块
PyExecJS用于实现在Python中运行JavaScript代码的功能,移植自Ruby的ExecJS库。 安装命令:pip install PyExecJs -i https://pypi.douban.com/simple <a name="VLXRj"></a>
4、JS常见加密算法
4.1、Base64算法
base64是一种用64个字符来表示任意二进制数据的方法。 base64使用 A--Z a--z 0--9 + / 这64个字符实现对数据的加密。 <a name="UpuIe"></a>
4.2、MD5算法
MD5是一种被广泛使用的线性散列算法,可以产出一个128位(16字节)的散列值(hash value),用于确保信息传输完整的一致性。且MD5加密之后产生的是一个固定长度(32位或16位)数据。 MD5参考网址: https://cdn.bootcdn.net/ajax/libs/blueimp-md5/1.0.1/js/md5.js md5破解网址:md5在线解密破解,md5解密加密 或者 md5在线加密解密 补充: 为了提高密码的安全性 一般会在密码后面加上一个随机数或者是时间戳 这个随机数或者是时间戳 我们一般称之为盐 <a name="kbODp"></a>
4.3、DES/AES算法
DES对称加密,是一种比较传统的加密方式,其加密运算、解密运算使用的是同样的密钥,信息的发送者。 和信息的接收者在进行信息的传输与处理时,必须共同持有该密钥(称为对称密码),是一种对称加密算法。一般来说加密用的是encrypt()函数,解密用的是decrypt()函数。 AES/DES加密解密网址: 在线加密/解密,对称加密/非对称加密 <a name="ZuF66"></a>
4.2.2 AES与DES的区别
-
加密后密文长度不同
-
DES加密后密文长度是8的整数倍
-
AES加密后密文的长度是16的整数倍
-
-
安全度不同
-
一般情况下DES足够安全
-
如果要求高可以使用AES
-
-
DES和AES切换只需要修改CryptoJS.DES =>CryptoJS.AES <a name="mFwmr"></a>
4.4、RSA算法
RSA加密算法是一种非对称加密算法。在公开密钥加密和电子商业中RSA被广泛使用。有两把对应密钥,公钥和私钥。用公钥加密只能用私钥解开,用私钥加密只能用公钥解密。 RSA加密解密网址:RSA加密、RSA解密 - 在线工具 - OKTools
4.5 JS算法注意点
在JS逆向中,并不是所有的都存在加密算法 有时候 不需要去分析出是什么加密算法直接扣出代码即可。 <a name="P6Sfm"></a>
5、chrome常见调试技巧
-
断点调试:在需要调试的JavaScript代码行上设置断点,当代码执行到该执行时,会暂停执行,可以查看当前变量和调用栈等信息。可以通过点击行号来设置断点。
-
控制台调试:在控制台面板中可以执行JavaScript代码,可以查看和修改数量的值,以及调用函数和方法等。可以使用console.log()、console.error()等方法来输出调试信息。 <a name="oTCbg"></a>
6、Base64编码详讲
Base64编码由来
为什么会有Base64编码呢?因为有些网络传送渠道并不支持所有的字节,例如传统的邮件只支持可见字符的传送,像ASCII码的控制字符就不能通过邮件传送。这样用途就受到了很大的限制,比如图片二进制流的每个字节不可能全部是可见字符,所以就传送不了。最好的方法就是在不改变传统协议的情况下,做一种扩展方案来支持二进制文件的传送。把不可打印的字符也能用可打印字符来表示,问题就解决了。Base64编码应运而生,Base64就是一种基于64个可打印字符来表示二进制数据的表示方法。 <a name="tvMMh"></a>
Base64编码原理分析参考
https://www.cnblogs.com/luguo3000/p/3940197.html <a name="iZ5Kp"></a>
Base64在python中的应用
import base64 """将字符串转换成base64编码""" string = "https://www.baidu.com" temp_b = string.encode("utf-8") # 将字符串转换为二进制 print(temp_b) content_b = base64.b64encode(temp_b) print(content_b) str_result = content_b.decode('utf-8') print(str_result) """将Base64编码还原为字符串""" str_result = "aHR0cHM6Ly93d3cuYmFpZHUuY29t" my_str = base64.b64decode(str_result).decode("utf-8") print(my_str) """处理base64编码的图片""" import base64 src = "data:image/jpg;base64,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" # 切割字符串,获取后面图片数据部分 image_data = src.split(',')[1] # 解码-->二进制数据 image = base64.b64decode(image_data) print(image) with open('验证码.jpg','wb') as f:f.write(image)
7、MD5详讲
一、MD5加密是什么?
MD5是一种常用的消息摘要算法,它可以将任意长度的消息压缩成一个128位的哈希值。MD5算法广泛应用于数字签名、数据完整性校验、密码学等领域。 MD5(Message-Digest Algorithm 5)是一种常用的哈希算法,它将任意长度的消息压缩成一个128位的消息摘要(即哈希值),并且具有不可逆性、唯一性、抗碰撞性等特点。 <a name="bEnci"></a>
二、MD5加密解密的原理?
MD5算法的原理是将输入的消息分成512位的数据块,每个数据块再分成16个32位的小块,然后通过一系列的位运算和非线性函数,对每个小块进行处理,最终得到一个128位的哈希值。由于MD5算法的设计,即使输入的消息只有微小的变化,也会导致输出的哈希值发生巨大的变化,因此可以用来验证数据的完整性和真实性。 <a name="vCvKT"></a>
三、MD5算法的用途
数据完整性验证:通过比较两个文件的MD5值,可以判断它们是否相同,从而验证文件的完整性。 密码加密:将用户的密码进行MD5加密后,可以保证用户密码的安全性,即使数据库被攻击,攻击者也无法直接获取用户的密码。 数字签名:数字签名是一种保证数据完整性和真实性的技术,MD5算法可以用来生成数字签名。 安全访问控制:MD5算法可以用来生成安全访问控制的密钥,从而保证访问控制的安全性。
相关文章:

“探秘JS加密算法:MD5、Base64、DES/AES、RSA你都知道吗?”
目录 1、什么是JS、JS反爬是什么?JS逆向是什么? 2、JS逆向的大致流程 3、逆向的环境搭建 3.1、安装node.js 3.2、安装js代码调试工具(vscode) 3.3、安装PyExecJs模块 4、JS常见加密算法 4.1、Base64算法 4.2、MD5算法 4.3、DES/AES算法 4.2.2 AES与DES的…...

Spark项目Java和Scala混合打包编译
文章目录 项目结构Pom完整文件编译查看 实际开发用有时候引用自己写的一些java工具类,但是整个项目是scala开发的spark程序,在项目打包时需要考虑到java和scala混合在一起编译。 今天看到之前很久之前写的一些打包编译文章,发现很多地方不太对…...

深度学习处理文本(NLP)
文章目录 引言1. 反向传播1.1 实例流程实现1.2 前向传播1.3 计算损失1.4 反向传播误差1.5 更新权重1.6 迭代1.7 BackPropagation & Adam 代码实例 2. 优化器 -- Adam2.1 Adam解析2.2 代码实例 3. NLP任务4. 神经网络处理文本4.1 step1 字符数值化4.2 step 2 矩阵转化为向量…...

汽车电子笔记之:AUTOSAR方法论及基础概念
目录 1、AUTOSAR方法论 2、AUTOSAR的BSW 2.1、MCAL 2.2、ECU抽象层 2.3、服务层 2.4、复杂驱动 3、AUTOSAR的RTE 4、AUTOSAR的应用层 4.1、SWC 4.2、AUTOSAR的通信 4.3、AUTOSAR软件接口 1、AUTOSAR方法论 AUTOSAR为汽车电子软件系统开发过程定义了一套通用的技术方法…...

鼠标拖拽盒子移动
目录 需求思路代码页面展示【补充】纯js实现 需求 浮动的盒子添加鼠标拖拽功能 思路 给需要拖动的盒子添加鼠标按下事件鼠标按下后获取鼠标点击位置与盒子边缘的距离给 document 添加鼠标移动事件鼠标移动过程中,将盒子的位置进行重新定位侦听 document 鼠标弹起&a…...

AUTOSAR从入门到精通-【应用篇】面向车联网的车辆攻击方法及入侵检测
目录 前言 国内外研究现状 (1)车辆攻击方法的研究 (2)车辆安全防护技术的研究...

0101prox-shardingsphere-中间件
1 启动ShardingSphere-Proxy 1.1 获取 目前 ShardingSphere-Proxy 提供了 3 种获取方式: 二进制发布包DockerHelm 这里我们使用Docker安装。 1.2 使用Docker安装 step1:启动Docker容器 docker run -d \ -v /Users/gaogzhen/data/docker/shardings…...

FactoryBean和BeanFactory:Spring IOC容器的两个重要角色简介
目录 一、简介 二、BeanFactory 三、FactoryBean 四、区别 五、使用场景 总结 一、简介 在Spring框架中,IOC(Inversion of Control)容器是一个核心组件,它负责管理和配置Java对象及其依赖关系,实现了控制反转&a…...

微服务中间件--分布式搜索ES
分布式搜索ES 11.分布式搜索 ESa.介绍ESb.IK分词器c.索引库操作 (类似于MYSQL的Table)d.查看、删除、修改 索引库e.文档操作 (类似MYSQL的数据)1) 添加文档2) 查看文档3) 删除文档4) 修改文档 f.RestClient操作索引库1) 创建索引库2) 删除索引库/判断索引库 g.RestClient操作文…...

触摸屏与PLC之间 EtherNet/IP无线以太网通信
在实际系统中,同一个车间里分布多台PLC,用触摸屏集中控制。通常所有设备距离在几十米到上百米不等。在有通讯需求的时候,如果布线的话,工程量较大耽误工期,这种情况下比较适合采用无线通信方式。 本方案以MCGS触摸屏和…...

Crontab定时任务运行Docker容器(Ubuntu 20)
对于一些离线预测任务,或者D1天的预测任务,可以简单地采用Crontab做定时调用项目代码运行项目 Crontab简介: Linux crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令&…...

Fegin异步情况丢失上下文问题
在微服务的开发中,我们经常需要服务之间的调用,并且为了提高效率使用异步的方式进行服务之间的调用,在这种异步的调用情况下会有一个严重的问题,丢失上文下 通过以上图片可以看出异步丢失上下文的原因是不在同一个线程,…...

《Linux从练气到飞升》No.17 进程创建
🕺作者: 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux菜鸟刷题集 😘欢迎关注:👍点赞🙌收藏✍️留言 🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的…...

python + pyside2,pyside6,运行错误
在visual studio code运行pyside的时候报错 qt.qpa.plugin: Could not find the Qt platform plugin “windows“ in 后来发现在cmd命令行可以正常运行,应该是VScode和虚拟机类似的问题。 额外设置一下环境变量就可以了。 执行print(os.path.dirname(PySide6.__f…...

第60步 深度学习图像识别:误判病例分析(Pytorch)
基于WIN10的64位系统演示 一、写在前面 上期内容基于Tensorflow环境做了误判病例分析(传送门),考虑到不少模型在Tensorflow环境没有迁移学习的预训练模型,因此有必要在Pytorch环境也搞搞误判病例分析。 本期以SqueezeNet模型为…...

基于Java+SpringBoot+vue前后端分离夕阳红公寓管理系统设计实现
博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…...

远控木马病毒分析
一、病毒简介 SHA256:880a402919ba4e896f6b4b2595ecb7c06c987b025af73494342584aaa84544a1 MD5:0902b9ff0eae8584921f70d12ae7b391 SHA1:f71b9183e035e7f0039961b0ac750010808ebb01 二、行为分析 同样在我们win7虚拟机中,使用火绒剑进行监控,分析行为…...

线性代数的学习和整理7:各种特殊效果矩阵汇总
目录 1 矩阵 1.1 1维的矩阵 1.2 2维的矩阵 1.3 没有3维的矩阵---3维的是3阶张量 1.4 下面本文总结的都是各种特殊效果矩阵特例 2 方阵: 正方形矩阵 3 单位矩阵 3.1 单位矩阵的定义 3.2 单位矩阵的特性 3.3 为什么单位矩阵I是 [1,0;0,1] 而不是[0,1;1,0] 或[1,1;1,1]…...

[git]github上传大文件
github客户端最高支持100Mb文件上传,如果要>100M只能用git-lfs,但是测试发现即使用git lfs,我上传2.5GB也不行,测试737M文件可以,GitHub 目前 Git LFS的总存储量为1G左右,超过需要付费。(上传失败时&…...

element ui - el-select获取点击项的整个对象item
1.背景 在使用 el-select 的时候,经常会通过 change 事件来获取当前绑定的 value ,即对象中默认的某个 value 值。但在某些特殊情况下,如果想要获取的是点击项的整个对象 item,该怎么做呢? 2.实例 elementUI 中是可…...

实现SSM简易商城项目的购物车实现
实现SSM简易商城项目的购物车实现 在这篇博客中,我们将使用SSM框架来实现一个简易的购物车功能。我们将使用Spring框架来管理Bean,使用SpringMVC框架来处理HTTP请求,使用MyBatis框架来操作数据库。 实现SSM简易商城项目的购物车功能的思路如…...

【学习FreeRTOS】第17章——FreeRTOS任务通知
1.任务通知的简介 任务通知:用来通知任务的,任务控制块中的结构体成员变量 ulNotifiedValue就是这个通知值。 使用队列、信号量、事件标志组时都需另外创建一个结构体,通过中间的结构体进行间接通信! 使用任务通知时,…...

GO-vscode远程开发和调试
本文内容主要包括: 概述: 主要就是把代码放到服务器上然后远程去开发和调试 工具: vscode 远程端: linux 一.安装远程插件 vscode安装Remote - SSH,Remote Explorer,Remote Development,…...

【笔记】判断两个Double类型的值是否相同
在Java中,将两个double值转换为String类型,然后使用equals方法进行比较是一个常见的做法,但是这种方法并不是完全可靠,特别是在涉及浮点数的精度时仍然可能会遇到问题。 浮点数在内部以二进制表示,有时会存在舍入误差…...

Linux —— nfs文件系统
简介 NFS 是Network File System的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位…...

数据降维 | MATLAB实现T-SNE降维特征可视化
数据降维 | MATLAB实现T-SNE降维特征可视化 目录 数据降维 | MATLAB实现T-SNE降维特征可视化降维效果基本描述程序设计参考资料 降维效果 基本描述 T-SNE降维特征可视化,MATLAB程序。 T-分布随机邻域嵌入,主要用途是对高维数据进行降维并进行可视化&…...

蓝桥杯上岸每日N题 (交换瓶子)
大家好 我是寸铁 希望这篇题解对你有用,麻烦动动手指点个赞或关注,感谢您的关注 题目描述 有 N 个瓶子,编号 1∼N,放在架子上。 比如有 5 个瓶子: 2 1 3 5 4 要求每次拿起 2 个瓶子,交换它们的位置。 …...

GMS基本模块TIN、Solids、Modflow2000/2005、MT3DMS、MODPATH。及其在地下水流动、溶质运移、粒子追踪方面的应用
解决地下水数值模拟技术实施过程中遇到的困难,从而提出切实可行的环境保护措施,达到有效保护环境、防治地下水污染,推动经济社会可持续发展的目的。 (1)水文地质学,地下水数值模拟基础理论;&am…...

MySQL数据库中间件Mycat介绍及下载安装(教程)
一,介绍 MyCat是开源的、活跃的、基于Java语言编写的MySQL数据库中间件。可以像使用MySQL一样来使用MyCat,对于开发人员来说根本感觉不到MyCat的存在。 开发人员只需要连接MyCat即可,而具体底层用到几台数据库,每一台数据库服务器…...

【VMware】CentOS 设置静态IP(Windows 宿主机)
文章目录 1. 更改网络适配器设置2. 配置虚拟网络编辑器3. 修改 CentOS 网络配置文件4. ping 测试结果 宿主机:Win11 22H2 虚拟机:CentOS-Stream-9-20230612.0 (Minimal) 1. 更改网络适配器设置 Win R:control 打开控制面板 依次点击&#x…...