| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 【爬虫工程师-参数逆向工程】 -> 正文阅读 |
|
[网络协议]【爬虫工程师-参数逆向工程】 |
前言 ????????我们在做对爬取网站破解的时候,经常会有加密参数逆向解析的时候,这个时候我们往往会使用到各种加密算法、混淆、编码对参数进行解析,我们一般是根据每个算法都有其独特的特征去破解,虽然有一些网站参数是自己定义的,但是大多数网站都是使用官方通报的算法,在各大网站没有自己精加工的情况下,我们如果能熟悉这些算法的规律,通过密文我们就能轻松猜测出这个参数用的是哪种算法、混淆、编码,从而大大加快我们的爬虫工程开发!所以我们有必要去熟悉常见的这些东西。 本篇文章将讲述一些编码和加密算法的规律。 加密算法 MD5 MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)设计,于1992年公开,用以取代MD4算法。这套算法的程序在 RFC 1321 标准中被加以规范。1996年后该算法被证实存在弱点,可以被加以破解,对于需要高度安全性的数据,专家一般建议改用其他算法,如SHA-2。2004年,证实MD5算法无法防止碰撞(collision),因此不适用于安全性认证,如SSL公开密钥认证或是数字签名等用途。 其密文的主要规律如下:
PS:某些特殊情况下,密文的长度也有可能不止 16 位或者 32 位 如下示例:
SHA 系列安全散列算法(英语:Secure Hash Algorithm,缩写为SHA)是一个密码散列函数家族,是FIPS所认证的安全散列算法。能计算出一个数字消息所对应到的,长度固定的字符串(又称消息摘要)的算法。且若输入的消息不同,它们对应到不同字符串的机率很高。 SHA 是比 MD5 更安全一点的摘要算法,SHA 通常指 SHA 家族算法,分别是 SHA-1、SHA-2、SHA-3,其中 SHA-2 是 SHA-224、SHA-256、SHA-384、SHA-512 的并称,SHA-3 是 SHA3-224、SHA3-256、SHA3-384、SHA3-512、SHAKE128、SHAKE256 的并称,其名字的后缀的数字就代表了结果的大小(bit),注意,SHAKE 算法结果的大小并不是固定的,其他算法特征如下:
HMAC????????HMAC是密钥相关的哈希运算消息认证码(Hash-based Message Authentication Code)的缩写,由H.Krawezyk,M.Bellare,R.Canetti于1996年提出的一种基于Hash函数和密钥进行消息认证的方法,并于1997年作为RFC2104被公布,并在IPSec和其他网络协议(如SSL)中得以广泛应用,现在已经成为事实上的Internet安全标准。它可以与任何迭代散列函数捆绑使用。???????? 规律 ????????在HMAC的定义中用到一个密码散列函数H和一个密钥K。假设H是一个能够对明文进行分组循环压缩的散列函数,B为散列函数的明文分组长度(byte),在上述的散列函数中B=64,L为散列函数的输出长度(byte),MD5中L=16,SHA-1中L=20。认证密钥K可以为任意长度,一般密钥长度应大于明文分组的长度,将密钥的第一次散列值作为HMAC真正使用的密钥,密钥的最小推荐长度为Lbytes。 再定义两个不同的固定字符串ipad和opad如下(“i”和“o”表示内部和外部):
若以“text”作为要计算HMAC的明文,则作如下操作:
也就是说,操作步骤如下:
在前端JS中通常写法是:
?示例:
? ? ? ? ? ? ? ? RSA? RSA是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的?[1]??。? JS常用关键词: ????????搜索关键词 new JSEncrypt(),JSEncrypt 等,一般会使用 JSEncrypt 库,会有 new 一个实例对象的操作; ? ? ? ?Rabbit、RC4、AES、DES、3DES 等 ? ? ? ? 这类算法一般是没有固定长度的,一般是用纯 javascript 写的加密算法类库crypto-js 来实现。
在控制台可搜索关键:”CryptoJS、crypto-js、iv、mode、padding、createEncryptor、createDecryptor SM 系列 SM3是中华人民共和国政府采用的一种密码散列函数标准,由国家密码管理局于2010年12月17日发布。相关标准为“GM/T 0004-2012 《SM3密码杂凑算法》”。 在商用密码体系中,SM3主要用于数字签名及验证、消息认证码生成及验证、随机数生成等,其算法公开。据国家密码管理局表示,其安全性及效率与SHA-256相当。 其余简介我就不多描述了,上关键词:
编码系列BASE系列编码? 这里我们最常用的编码base64,其他系列包括Base16、Base32、Base58、Base85、Base100? 规律 :
?Unicode 编码 ? ? ? ? 又被成为统一码(Unicode),也叫万国码、单一码,是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。 其主要特征如下:
? ? ? ? ? url 和Hex 编码? 这两种编码基本一致,但是两种有一点不同就是Hex会把特殊符号中(&、?、 /、=) 、关键字中(http、https)全部转换,而url 编码不会转换。 示例:
混淆系列 ?此系列很重要,一般安防意识比较强的网站 都会使用混淆: Jother ? ? ? ??jother混淆特征: ? ? ? ? ????????一般由8个字符组成:[]()!+{} ? ? ? ? 混淆示例代码: ????????????????({}+[])[+!![]]+({}[[]]+[])[+!![]])() JSFuck ? ? ? ??和上面一个混淆工具jother很像,但是区别是jsfuck没有{} ????????混淆特征: ? ? ? ? ????????一般由8个字符组成:[]()!+ ? ? ? ? 混淆示例代码: ????????????????(!![]+[])[+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]] ?Brainfuck ????????Brainfuck是一种极小化的计算机语言,它是由Urban Müller在1993年创建的。由于fuck在英语中是脏话,这种语言有时被称为brainf*ck或brainf**k,甚至被简称为BF。 ? ? ? ? 混淆特征: ????????????????仅由? ? ? ? ? 混淆示例:
?Ook! ????????Ook!也是一种混淆,他和bf类似,但是混淆符号有差异。 ? ? ? ? 混淆特征: ????????????????仅由 3 种符号组成 Ook.、Ook?、Ook! ? ? ? ? 混淆示例:
Obfuscator
混淆示例:
|
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 9:27:08- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |